Gentoo專案引進了Portage 3.0套件管理系統

穩定化 套件管理系統發布 波蒂奇3.0,用於分佈 Gentoo Linux。 所提出的主題總結了向 Python 3 過渡和終止對 Python 2.7 支援的長期工作。

除了終止對 Python 2.7 的支援之外,另一個重要的變更是包含 最佳化,這使得與確定依賴關係相關的計算速度加快了 50-60%。 有趣的是,一些開發人員建議用 C/C++ 或 Go 重寫依賴解析程式碼以加快其運行速度,但他們不費吹灰之力就解決了現有問題。

對現有程式碼的分析表明,大部分計算時間都花在使用一組重複的參數呼叫 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

添加評論