<center id="mejoe"></center>
          1. WEB站點性能優化實踐(加載速度提升2s)

            時間:2014-11-01 來源:文率博客

            WEB站點性能優化實踐(加載速度提升2s)

                  文率科技技術總監:博客中提到關于怎樣在網站中進行優化,達到提高網站排名的效果,網站SEO如果只做一些表面的關鍵詞或者文章管理是遠遠不夠的,網站本身的質量是怎么樣的?用戶體驗是否真的很不錯等等條件都是很重要的,百度的智能化算法都會對你網站的排名加以影響,天津網站建設——文率科技對于每個客戶的網站都有代碼的優化,網站內部結構的提速等等,讓新站在排名中本身就具有一定的競爭力。

            進行優化前,關鍵是剖析當前的web性能,找到性能瓶頸,從而確定最需改進的地方;如果精力有限,首先將精力放在能明顯提升性能的改進點上;

            《高性能網站建設指南》提出了一個性能黃金法則:

            只有10%-20%的最終用戶響應時間花在了下載HTML文檔上;其余的80%-90%的時間花在了下載頁面中的所有組件上。

            由于本文將實施一個完整的優化流程,所以,我們還是從后臺開始;

            案例說明:

            優化之前的網站規模:

            2個js、一個頁頭、一個頁腳;3個css;

            類型:博客類站點;后臺邏輯簡單;首頁不到10個sql查詢;

            首頁html文檔52kb;

             

            ⑴步:后臺優化,啟用頁面緩存;

            實驗站點首頁后臺邏輯并不復雜,不超過10個Sql查詢,通過查看時間線,本站在獲取HTML文檔時,花費的時間不到總響應時間的20%,優化之前沒有使用緩存,所有的數據都是從數據庫讀取,這里,我們使用靜態頁面緩存,將首頁整個頁面完全的存放在緩存中(關于YII靜態頁面緩存的使用,參考這里);

            通過查看html文檔的生成時間來檢測優化效果;

            首字節時間為376ms;html生成的時間大大縮短,后臺時間減少了一倍。


            第二步,DNS域名解析加速:

            DNS解析是用戶訪問站點的⑴步,在此之前,你的網站無法做任何事情;

            站點的DNS解析時間不應該超過500ms,如果站點原始DNS解析時間過長,就該考慮考慮使用第三方解析加速服務;

            實驗站點的原始DNS解析較慢,平均耗時1017ms,算是非常長的;對于DNS加速,可以使用DNS域名解析加速服務,本站點采用的國內的一款免費DNS加速服務DNSPOD,效果還不錯,使用后平均耗時降到370ms;

            第三步:使用CDN加速;

            采用第三方CDN加速,時間縮短到2.1s;從下圖中看到主要的耗時在于并行下載的個數有些低,如果能夠提升并行下載量的個數,那么整體加載時間就會降低;

            注:個人建議,啟用CDN較好放在最后一步,等將站點本身的優化都做完了之后,再啟用CDN可以明顯的看到優化效果。(開啟CDN后,由于有CDN緩存的原因,觀測站點的本身的優化就不是很方便了);

            第四步,采用多臺服務器提高并行加載量:

            原理:一個瀏覽器對與同一域名的并行下載的個數默認是2個, HTTP.1.0中規定的是4個。這樣,我們可以使用不同的域名來提升下載的速度;

            觀察上圖中的下載數量,⑴次并行下載的個數是4個,初始認為是瀏覽器對于同一個域名來源的下載所限導致;于是考慮將部分靜態文件分別放在不同的服務器上;通過把css和js放在不同服務器上;結果并不理想,發現并未提高速度。

            想到在哪曾看到過,瀏覽器必須得把放在頁頭的css和js下載完成了之后才會開始下載其它的靜態組件;

            關于并行下載這點上,后續將繼續實驗是否還有優化的空間。


            第五步,合并腳本和樣式表;

                本站首頁使用了2個js和3個css。如果采用樸素復制的方式,將js和css都分別整合到一個文件中,不但操作麻煩,而且不方便后期的管理。網絡上有不少合并的工具,本站采用了CSS和JS合并優化工具-minify(下載地址:http://code.google.com/p/minify/)。如果使用的YII框架,更有YII整合版(minscript Extension),簡單幾步的配置,就自動將頁面所有的js和css文件合并;

            關于minscript Extension的使用,請參考:https://bitbucket.org/TeamTPG/minscript/wiki/Usage

             

            第六步,壓縮css/js/html/xml;

            不同的web服務器設置方式有所差別,本站使用的Linux/apache,

            在web根目錄下的.htaccess文件中添加以下代碼即可:

            #set compress

             AddOutputFilter DEFLATE html xml php js css

            通過firefox工具可看到,壓縮前,html文檔的大小是25KB;合并后的js大小為138KB;

            壓縮后,html文檔大小為6.2KB。js大小為39.8KB;減少2/3的傳輸時間;



            第七步,最大化的減少HTTP請求;

            添加Expires頭, 啟用靜態內容緩存,將jpg、gif等文件緩存;

            方法也是在.htaccess中添加:

            # Image and Flash content Caching for One Month


            Header set Cache-Control “max-age=2592360″

             

             

            結論

            查看最終的測試結果,整體實現了較大的性能提升,最終頁面展現時間為1.62s(


            聯絡方式:

            中國 · 天津市河西區南京路35號亞太大廈1403室
            電話:15620613686
            郵編:300220

            免费一级毛片女人自慰
            <center id="mejoe"></center>