透過重新編譯,讓 Ubuntu 套件效能提升 90% (★
101 分)
這篇文章探討如何藉由重新編譯 Ubuntu 套件中所採用的 jq 程式,來大幅提升其執行效能。作者以處理 500MB GeoJSON 檔案為案例,原本在 Ryzen 9 9950X 系統上使用預設 Ubuntu 版本約需 4.6 秒完成查詢,而僅透過簡單重新編譯便能獲得約 2~4% 的效能提升。進一步採用 clang 編譯器結合更高級的最佳化旗標(例如 -O3、 -flto 以及 -DNDEBUG)後,效能進一步獲得約 20% 的改善。文章接著實驗了改用不同記憶體分派器,包括透過預載 tcmalloc、jemalloc 與 mimalloc,其中 mimalloc 獲得最佳表現,單是預載就提升效能約 44%;而將 mimalloc 靜態連結進程式後,整體效能更是提升至近 1.9 倍,顯著縮短了處理大量 JSON 資料所需的時間。
從基準測試結果可見,作者以一系列可重現的實驗方法,從重新編譯到採用不同記憶體分派器,逐步展示了如何僅透過微幅修改編譯方式,便能獲得顯著的性能優勢。討論區中,許多使用者分享了各自在不同環境下最佳化實作的經驗,並針對不同記憶體分派器的效能差異提出見解和補充,這些回饋豐富了整個優化過程的實務參考。整體而言,此方法為提升 Ubuntu 套件中舊有軟體的效能提供了一個實用且具體的參考範例,對於需大量處理 JSON 資料的應用場景特別具有吸引力。
👥
68 則討論、評論 💬
https://news.ycombinator.com/item?id=43406710