長期以來,Hexo 在處理大型網站方面一直表現不佳。(#710, #1124, #283, #1187, #550, #1769 等)我們努力解決這個問題,並且在 Hexo 3.2 中進行了一些改進。
速度至上
快取渲染內容
渲染的內容會快取在倉庫中。這節省了大量的時間,並使熱處理(第二次處理)速度**加快了 1.7 倍**。
版本 | 3.1 | 3.2 |
---|---|---|
冷處理 | 6.094 秒 | 6.454 秒 |
熱處理 | 5.154 秒 | 3.002 秒 |
延遲載入 highlight.js 的語言檔案
highlight.js 速度很慢。特別是當它嘗試偵測語言時。延遲載入語言檔案可以加快處理速度,並且不必載入大量未使用的語言檔案。但是,有一些限制
- 必須禁用自動偵測。
- 您必須在程式碼區塊中指定語言。
您可以在 _config.yml
中設定禁用自動偵測。
highlight: |
範本預先編譯
如果可能,主題範本會預先編譯。這使得產生速度**加快了 2 倍**。
版本 | 3.1 | 3.2 |
---|---|---|
冷產生 | 27.2 秒 | 13.6 秒 |
熱產生 | 24.4 秒 | 12.6 秒 |
以下渲染器已經支援此功能。
並且很容易為渲染器實現預先編譯。只需向渲染器新增一個 compile
函數即可。以 EJS 渲染器為例
var ejs = require('ejs'); |
包含/排除來源檔案
您可以在 _config.yml
中包含/排除指定的來源檔案。
include: |