比較靜態站點生成器的構建時間
考慮到大量的選項,選擇靜態站點生成器(SSG)可能會令人生畏。儘管許多文章比較了流行的選擇,但真正明智的決定需要了解現實世界的表現。這項基準研究分析了在六個流行的SSG中建立時間,以揭示速度差異的差異,而且揭示了這些差異的根本原因。這不僅僅是找到最快的;這是關於理解權衡。
每個SSG都共享一個核心過程:獲取輸入數據,應用模板引擎並生成HTML。這個“構建”過程是我們比較的重點。
這不僅僅是一場速度比賽(儘管雨果自稱為“世界上最快”的標題值得調查!)。目標是深入研究構建時間變化及其原因。消除慢速表演者或盲目偏愛的速度冠軍將是一個過分簡化。
基準測試
我們的初始測試採用了一種簡化的方法:六種流行的SSG和一種直接的數據格式。這為將來擴展到更多SSG和復雜的數據結構提供了基準。參與者:
- 高度
- 蓋茨比
- 雨果
- 傑基
- 下一個
- nuxt
測試方法:
- 數據:帶有隨機生成的標題(前染色)和三段主體的降級文件。不包括圖像。
- 環境:測試是在一台機器上依次進行的;相對比較比絕對值更重要。
- 輸出:使用每個SSG的默認啟動器配置,純文本HTML。
- 構建類型:“冷運行”,清除了緩存和為每個測試重新生成的降低文件。
這些是使用基本降壓和未風格的HTML輸出的基準測試。雖然在技術上可部署,但它們並不能完全代表現實世界的情況。這提供了基本的比較。實際構建時間將根據開發人員的選擇和項目複雜性(通常會增加構建時間)而有所不同。例如,“冷構建”與現實情況有很大不同的情況,即緩存(尤其是在蓋茨比)大大減少了構建時間,通常會減少一半或更多。增量構建僅關注更改的文件,也不包括在此初始階段中。
SSG兩層
我們將發電機分為兩個層:
- 基本:基本上是命令行接口(CLIS)處理數據並輸出HTML。資產處理的擴展是可能的,但在這裡未進行測試。 (高度,雨果,傑基爾)
- 高級:提供靜態站點生成以外的其他功能,例如服務器端渲染,無服務器功能和框架集成。更動態的開箱即用。 (蓋茨比,下一個,nuxt)
包括每個層的三個SSG。
假設
我們的假設:由於開銷增加,高級SSG將比基本SSG慢。
我們預計:
線性(ISH)和快速:雨果和高度,分別利用go and node.js,應顯示高速,尤其是在較小的數據集的情況下。縮放應該放慢腳步,但他們應該仍然是表現最好的人。
緩慢,然後快速(ER),但仍然慢:基於框架的SSG(Gatsby,Next,Nuxt)使用WebPack最初由於開銷而顯得很慢。但是,隨著較大的數據集,我們預計差距會縮小,儘管它們將保持在基本的SSG之後。由於缺乏服務器端組件,蓋茨比被預計是高級組中最快的。與REACT相比,由於潛在的VUE.JS開銷可能較低,因此NUXT預計將勝過下一步。
Jekyll:通配符: Ruby的表現是一個因素。雖然缺少框架開銷,但其速度尚不確定,尤其是在大規模上。
結果
測試代碼和結果可在GitHub [鏈接到GitHub repo]上找到。在三個數據集中進行了十次運行:
- 基礎:單文件
- 小站點: 1到1024個文件,每次加倍。
- 大型站點: 1000至64,000個文件,每次加倍。 (最初計劃有128,000個,但用一些框架打了瓶頸。)
[在此處包括圖表/圖表]
調查結果摘要
雨果的主導地位:正如預測的那樣,雨果是所有數據集中最快的,即使在基礎構建中也表現出色。
分層的性能:在小型站點測試中,基本和高級SSG之間的性能差異很明顯。令人驚訝的是,接下來和高高顯示64,000個文件的性能。 Jekyll始終優於高度。
蓋茨比(Gatsby)出乎意料的緩慢:蓋茨比(Gatsby)與我們的假設相反,是最慢的,表現出最戲劇性的性能曲線。
差異的規模:性能差異的幅度大於預期。雨果(Hugo)在一個文件中比蓋茨比(Gatsby)快250倍,在64,000個文件中快40倍。儘管雨果保持更快,但差距隨著站點尺寸的增加而縮小。
解釋
SSG維護者的反饋表明,較慢的構建時間通常反映出功能和開發人員的經驗增加。基本工具優先考慮HTML生成,而高級工具提供了更多功能。
關鍵要點:擴展jamstack站點提出了獨特的挑戰。最佳SSG取決於您項目的特定需求以及您對構建時間與開發人員體驗的容忍度。使用Gatsby的大型圖像較重的站點可能具有較慢的構建,但提供了廣泛的插件支持和結構化的開發環境。 Jekyll可能會提供更快的構建,但需要更多的手動組織。
就個人而言,由於優化策略在大規模上至關重要,但由於其可靠的功能和插件生態系統,Gatsby(或下一個)對於大型客戶項目而言是優選的。對於精細顆粒的控制和性能優先考慮的較小的個人項目,Hipytys受到青睞。
最終,選擇不僅僅是速度,而是最適合您的項目和工作流程。
下一步
這只是開始。未來的改進包括更現實的場景,較大的數據集,專用的測試機以及更多的SSG包含。鼓勵協作來完善測試方法並擴大基準的範圍。
以上是比較靜態站點生成器的構建時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢
