效能
官方基準
以下兩個圖表顯示在 GitHub Action 執行器上執行完整安裝所需的時間,在過去一周的每一天,針對所有主要套件管理員,平均計算在一天中執行多次的結果,而每次執行本身又平均計算多次安裝。
第一個圖表顯示 Next.js 專案的安裝時間,第二個圖表顯示 Gatsby 專案的安裝時間。兩條實線都代表 Yarn 的 master 分支,淺藍色線是 Yarn PnP 安裝,深藍色線是 Yarn 在 nodeLinker: node-modules
下運作。虛線藍色線代表 Yarn Classic。
提示
這只是我們每三小時針對每個工具的最新版本執行的基準測試中的一小部分。若要查看這些測試的所有變體,請參閱我們專用的 Datadog 儀表板。
不要從 pull request 執行基準測試
或至少在這樣做時使用私人儲存庫。
當 Yarn 偵測到執行環境是公開儲存庫上的拉取請求時,會啟用各種安全性設定。其中(請參閱 強化模式),它會預設從遠端登錄資訊中提取所有元資料,以確認它們與鎖定檔中的內容相符。這會讓安裝速度變慢許多,但對於保護我們的使用者免於 鎖定檔中毒 來說很重要。
關於遞減報酬
在討論套件管理員效能時,請記住這些數字非常相對。雖然主要和次要版本通常會在安裝速度方面有所改進,但減少幾秒鐘並不會產生顯著影響,特別是當這些時間在很大程度上取決於您的確切環境(CI 平臺、CPU 數量、網路速度、...)和設定(快取設定)。
無論您計畫使用 Yarn 或其他套件管理員,請務必不僅根據原始速度做出決定,還要根據更結構性的原因:它們各自實作的功能、它們各自提供的設定、它們各自設定的優先順序。