進(jìn)行優(yōu)化前,關(guān)鍵是剖析當(dāng)前的web性能,找到性能瓶頸,從而確定最需改進(jìn)的地方;如果精力有限,首先將精力放在能明顯提升性能的改進(jìn)點上;
《高性能網(wǎng)站建設(shè)指南》提出了一個性能黃金法則:
只有10%-20%的最終用戶響應(yīng)時間花在了下載HTML文檔上;其余的80%-90%的時間花在了下載頁面中的所有組件上。
由于本文將實施一個完整的優(yōu)化流程,所以,我們還是從后臺開始;
案例說明:
優(yōu)化之前的網(wǎng)站規(guī)模:
2個js、一個頁頭、一個頁腳;3個css;
類型:博客類站點;后臺邏輯簡單;首頁不到10個sql查詢;
首頁html文檔52kb;
第一步:后臺優(yōu)化,啟用頁面緩存;
實驗站點首頁后臺邏輯并不復(fù)雜,不超過10個Sql查詢,通過查看時間線,本站在獲取HTML文檔時,花費的時間不到總響應(yīng)時間的20%,優(yōu)化之前沒有使用緩存,所有的數(shù)據(jù)都是從數(shù)據(jù)庫讀取,這里,我們使用靜態(tài)頁面緩存,將首頁整個頁面完全的存放在緩存中(關(guān)于YII靜態(tài)頁面緩存的使用,參考這里);
通過查看html文檔的生成時間來檢測優(yōu)化效果;
首字節(jié)時間為376ms;html生成的時間大大縮短,后臺時間減少了一倍。
優(yōu)化前:

優(yōu)化后:

第二步,DNS域名解析加速:
DNS解析是用戶訪問站點的第一步,在此之前,你的網(wǎng)站無法做任何事情;
站點的DNS解析時間不應(yīng)該超過500ms,如果站點原始DNS解析時間過長,就該考慮考慮使用第三方解析加速服務(wù);
實驗站點的原始DNS解析較慢,平均耗時1017ms,算是非常長的;對于DNS加速,可以使用DNS域名解析加速服務(wù),本站點采用的國內(nèi)的一款免費DNS加速服務(wù)DNSPOD,效果還不錯,使用后平均耗時降到370ms;
加速前測試:

使用DNS域名解析服務(wù)之后的測試:

第三步:使用CDN加速;
采用第三方CDN加速,時間縮短到2.1s;從下圖中看到主要的耗時在于并行下載的個數(shù)有些低,如果能夠提升并行下載量的個數(shù),那么整體加載時間就會降低;
注:個人建議,啟用CDN最好放在最后一步,等將站點本身的優(yōu)化都做完了之后,再啟用CDN可以明顯的看到優(yōu)化效果。(開啟CDN后,由于有CDN緩存的原因,觀測站點的本身的優(yōu)化就不是很方便了);
