Composer 2 真的可以減少或規避記憶體不夠的致命錯誤

chuoke發表於2020-12-05

今天打算將一個專案更新到 Laravel 8,在把依賴版本調整後,當執行 composer update 的時候,那個該死的關於記憶體不夠的致命錯誤又出現了:

PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) 

感覺永遠都滿足不了它。條件反射的先去找解決方法,當然我知道要做什麼,但是忘了命令。在搜尋的過程中,讓我想起 Composer 2,記得有說它“更小的記憶體佔用”,而且升級和回退版本都很方便,不妨一試,隨即將其升級:

composer self-update --2

Updating to version 2.0.8 (2.x channel).
   Downloading (100%)
Use composer self-update --rollback to return to version 1.10.19

片隙就升級完成,然後執行更新包命令,這回沒有報錯,包開始一一安裝。通過這個包安裝的使用,直觀的給我幾點感受:

  • 進度上,v1需要很長的分析時間,然後嘩啦啦很快就安裝完成的樣子,而 v2 分析的快,安裝進度一條一條的輸出,感覺像是在一個一個的下載安裝,但是速度並不慢
  • v1 安裝時,我電腦的風扇開始加速,聲音很明顯的變大,記憶體佔用上升,而 v2 要平靜許多
  • v2 沒有直接對建議安裝的包和需要資金支援的包做輸出展示

升級後的其他問題暫時還不知道,發現關於 Composer 2 的相關使用反饋資訊不多。但至少記憶體佔用的優化,大大減少或可以規避記憶體不夠的發生。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
初出茅廬,一知半解,望有識之士多多賜教。

相關文章