20250905 Performance Matters

誰再和我說效能不重要我就扁人。

比如說我收到這個回覆:So even though building with this PR takes ~235% of the time, it is still only 17.25s per build of exampleSite in absolute terms.,這到底????你知道要提升 20% 效能是多困難的事情嗎,然後一個小改動慢兩倍跟我說沒差,頭殼壞掉。


主題維護者對 Hugo 的心得雜談裡面有提到 Hugo 速度非常快,有能力建立大型網站,以 Building a site with 50,000 pages taking a very long time 為例,構建 50000 個頁面的網站,即使他亂寫每個頁面都遍歷其他頁面 (25億次的開銷) 也僅僅耗時四小時,光是移除那個循環改用正確函式完成功能就降低到 3 分鐘,最後加上一些快取技巧成功縮減到兩分鐘,還不要說這是 2023 的文章,後來 Hugo 更新也有效能優化,還能更快。

然而我們看看其他工具的效能,比如說 LLVM 曾經嘗試使用 Docusaurus 構建 20000 個頁面的文檔

  1. 首次嘗試 OOM
  2. 套用最佳化配置後仍在 71% 階段崩潰,總耗時近 5 小時
  3. 發現問題根源是檔案複雜度而非數量 - 最大檔案達 29MB
  4. 排除最大檔案後可建構,但頁面達 4MB
  5. Maintainer 結論:Docusaurus 不適合大型網站 So, I think Docusaurus is definitively not good enough to support that kind of scale. Even if we did, having documents that long would not be great for performance.
  6. 最終改用 Markdown 格式,Mac 上成功建構但耗時 4+ 小時,GitHub runners 仍失敗
  7. 小型測試(1000 檔案)仍需 20GB 記憶體,顯示即使中等規模也有明顯限制

那麼 vitepress/vuepress 呢?搜不到有人用他們建過大網站。

那麼 mkdocs 呢?不用測試了,光是 50 頁內的超小網站就能明顯感受到慢,沒必要浪費時間測試。

那麼 hexo 呢?這裡看 hexo 維護者自己寫的文章比較有用 Hexo 5/6/7 生成文章性能对比,四千篇文章 160 秒完成,不過小問題是測試 repo 的文章都很短且沒有圖片,不能完全反應現實。

那麼 Next.js/eleventy/xxx/yyy 呢?我沒有要寫論文啦,懶的查了。

你說五萬十萬個頁面不夠看?那麼請看百萬級別的 V&A Explore The Collections, over 1 million pages generated by Hugo,Hugo 仍然有能力完成。

載入評論