除了終止對 Python 2.7 的支援之外,另一個重要的變更是包含
對現有程式碼的分析表明,大部分計算時間都花在使用一組重複的參數呼叫 use_reduce 和 catpkgsplit 函數上(例如,catpkgsplit 函數被呼叫 1 到 5 萬次)。 為了加快速度,使用字典快取這些函數的結果。 快取儲存的最佳選擇是內建的 lru_cache 函數,但它僅在從 3.2 開始的 Python 版本中可用。 為了與早期版本相容,添加了一個存根來取代 lru_cache,但 Portage 2.7 中停止支援 Python 3.0 的決定大大簡化了任務,並且可以在沒有這一層的情況下完成。
使用快取將 ThinkPad X220 筆記型電腦上「emerge -uDvpU —with-bdeps=y @world」操作的執行時間從 5 分 20 秒減少到 3 分 16 秒 (63%)。 對其他系統的測試顯示性能至少提高了 48%。
準備變更的開發人員也嘗試用 C++ 或 Rust 實作依賴解析程式碼的原型,但任務太困難,因為需要移植大量程式碼,而且結果是否值得值得懷疑。
來源: opennet.ru