欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

在Yslow 34 Rules之后 -- 網(wǎng)站性能優(yōu)化思路和進(jìn)

系統(tǒng) 1773 0

轉(zhuǎn)載: http://limu.iteye.com/blog/755628

WPO(Web Performance Optimization , 網(wǎng)站性能優(yōu)化)近年來(lái)發(fā)展迅猛,期間YAHOO做出了重要貢獻(xiàn),YSlow的14條軍規(guī),20條最佳實(shí)踐影響深遠(yuǎn).去年Steve出版了第二本書(shū),Velocity大會(huì)也從2008開(kāi)到了2010.各個(gè)網(wǎng)站越來(lái)越重視速度,也有越來(lái)越多開(kāi)發(fā)者投入到WPO大業(yè)當(dāng)中.

在一次內(nèi)部分享中,整理了Yahoo Rules之外WPO的一些新進(jìn)展,大雜燴只是表象,那多是些別人做了的事情.重要的是在當(dāng)前時(shí)期,WPO逐漸進(jìn)入精耕細(xì)作的階段,在放之四海而皆準(zhǔn)的Rules被巨頭們提煉的七七八八之后.如何結(jié)合自己的應(yīng)用做最合適的優(yōu)化?遵循怎樣的思路,借助什么樣的工具去發(fā)現(xiàn)問(wèn)題,解決問(wèn)題?從這些新進(jìn)展中可以看出些端倪,在這里記錄一下.

PPT在此,前21頁(yè)可以飛速掠過(guò),字體很杯具丫 (>_<)!



先說(shuō)思路:
YAHOO將Rules分成Content, Server, Cookie, CSS, JavaScript, Images, Mobile七類(lèi)是一種思路,讓開(kāi)發(fā)這快速定位到技能相關(guān)類(lèi)別.但是作為前端很可能要同時(shí)關(guān)注其中N個(gè)類(lèi)別.我們從另一個(gè)角度來(lái)看,網(wǎng)頁(yè)的展現(xiàn)有l(wèi)oading階段和render階段,render階段還是js,css,html三類(lèi)前端技術(shù),而在loading階段我們則需要關(guān)注http:減少http數(shù),優(yōu)化單個(gè)http的各個(gè)時(shí)間段,減少收發(fā)數(shù)據(jù)量,有效利用緩存等等,如下圖:
在Yslow 34 Rules之后 -- 網(wǎng)站性能優(yōu)化思路和進(jìn)展
我們要先分析哪個(gè)部分慢了,哪里可能有提升空間,再著手改進(jìn).

再說(shuō)工具:
借助四類(lèi)方面的四類(lèi)工具幫助,更好的覆蓋前面優(yōu)化思路中的各個(gè)方面:
一.數(shù)據(jù)包嗅探工具:
這類(lèi)工具關(guān)注HTTP的方方面面細(xì)節(jié),分析請(qǐng)求間順序和單個(gè)http請(qǐng)求各個(gè)階段的耗時(shí)情況.
典型的如HttpWatch,Firebug的網(wǎng)絡(luò)頁(yè)簽,Fiddler等等.
另外還有一些全網(wǎng)監(jiān)控工具可以獲得各個(gè)地點(diǎn)監(jiān)測(cè)結(jié)果,如基調(diào)網(wǎng)絡(luò).
二.運(yùn)行時(shí)分析工具:
這類(lèi)工具則更關(guān)注運(yùn)行時(shí)JS的性能,各階段內(nèi)存和CPU的使用情況.
典型的如Firebug Profiler, Page Speed Activity一些高階的性能探測(cè)工具如Web Page Test, Dynatrace Ajax也都在監(jiān)控這些方面.
三.內(nèi)存結(jié)構(gòu)分析工具:
這類(lèi)的工具還在起步階段,隨著復(fù)雜Web2.0應(yīng)用的內(nèi)存泄露風(fēng)險(xiǎn),隨著手持設(shè)備上web app的發(fā)展,內(nèi)存使用再次變得重要起來(lái).
主要的IE內(nèi)存泄露的診斷工具Drip, sIEve, JS Memory Leaks Detector.
而在內(nèi)存快照方面Mozilla有其研究,但Chrome先轉(zhuǎn)化為了實(shí)踐.在Chrome自帶的開(kāi)發(fā)者工具中有一個(gè)"Profiles"頁(yè)簽,其中一項(xiàng)功能"Heap Snapshots"提供內(nèi)存快照,可以從兩個(gè)角度觀察內(nèi)存結(jié)構(gòu),可以多次快照比較差異.在前天的Chrome推介會(huì)上,Google的同學(xué)也說(shuō)這個(gè)工具還不夠強(qiáng)壯.但是我們?nèi)匀豢梢杂煤盟?回想在firebug之前刪代碼+alert是定位問(wèn)題的不二法門(mén),在內(nèi)存分析工具不夠健壯時(shí),我們只要多做些test頁(yè),單獨(dú)測(cè)試我們懷疑的關(guān)注的部分就好了.
四.瀏覽器內(nèi)各子系統(tǒng)性能開(kāi)銷(xiāo)分析工具:
我們常說(shuō)"二八"原則,如果瀏覽器大量精力耗費(fèi)在了Dom訪問(wèn)中,而我們卻在優(yōu)化一個(gè)僅2%開(kāi)銷(xiāo)的算法上,顯然是沒(méi)有抓住主要矛盾.
在這方面IE一直走在前面, 最近的一篇文章剛剛披露了IE各個(gè)子系統(tǒng)和若干網(wǎng)頁(yè)展現(xiàn)時(shí)各子系統(tǒng)開(kāi)銷(xiāo)分析 ,借助這類(lèi)工具能更好的結(jié)合自身應(yīng)用找到優(yōu)化關(guān)鍵點(diǎn).

巨頭們精耕細(xì)作的實(shí)踐案例二則:
Flush the Buffer Early 是Yahoo Rules之一.推薦的Flush時(shí)機(jī)是</head>之后,可以讓瀏覽器先行下載<head>中引入的css,js,如下:

Php代碼 收藏代碼
  1. ...<!--css,js-->
  2. </head>
  3. <?php flush ();?>
  4. <body>
  5. ...<!--content-->

Yahoo 首頁(yè)希望能多次flush,首次flush就能展現(xiàn)搜索框,于是經(jīng)過(guò)測(cè)試得出結(jié)論:
Php代碼 收藏代碼
  1. <body>
  2. <divid= "page" >
  3. <divid= "search" ></div>
  4. <?php flush ();?><!-- flush 失敗,#search沒(méi)有提前渲染-->
  5. <divid= "main" ></div>
  6. </div>
  7. </body>

經(jīng)過(guò)測(cè)試,#page沒(méi)有關(guān)閉,阻礙了flush內(nèi)容的提前渲染,所以最新的YUI中布局都去掉了全局的<div>wrapper
Php代碼 收藏代碼
  1. <body>
  2. <divid= "search" ></div>
  3. <?php flush ();?><!-- flush 成功,#search提前渲染-->
  4. <divid= "main" ></div>
  5. </body>

Facebook 頁(yè)面更復(fù)雜,且高度定制化.他們從另一個(gè)角度解決這個(gè)問(wèn)題,更加深入的使用flush.
Php代碼 收藏代碼
  1. <body>
  2. <divid= "layout" >
  3. <divid= "mod_profile" ></div>
  4. <divid= "mod_photo" ></div>
  5. <divid= "mod_friend" ></div>
  6. </div>
  7. <?php flush ();?><!--首先 Flush 頁(yè)面布局-->
  8. <script>
  9. //htmlstringformod_photo
  10. </script>
  11. <?php flush ();?><!-- Flush #mod_photo的內(nèi)容-->
  12. <script>
  13. //htmlstringformod_profile
  14. </script>
  15. <?php flush ();?><!-- Flush #mod_profile的內(nèi)容-->
  16. <script>
  17. //htmlstringformod_friend
  18. </script>
  19. </body>

首先f(wàn)lush出整個(gè)頁(yè)面布局,然后服務(wù)器端并發(fā)請(qǐng)求好友數(shù)據(jù),個(gè)人信息,相冊(cè)等等模塊,哪一部分先返回就先將哪一部分作為一個(gè)單獨(dú)的<script>塊Flush出去,這就是Fackebook近來(lái)最主要的優(yōu)化技術(shù)BigPipe,使用這種技術(shù)使得Facebook的平均訪問(wèn)速度提高一倍(5s=>2.5s)
從這兩個(gè)例子可以看出,YAHOO要搜索框先看到,于是促成了布局調(diào)整,Facebook的頁(yè)面HTML內(nèi)容很多,生成慢,如果使用傳統(tǒng)Ajax會(huì)增加過(guò)多請(qǐng)求,于是通過(guò)Flush促成了動(dòng)態(tài)信息的combo -- BigPipe,這些都是在Rules基礎(chǔ)上,結(jié)合自身網(wǎng)站實(shí)際情況發(fā)展的很好的優(yōu)化實(shí)踐

淘寶廣告中的優(yōu)化實(shí)踐一則
Gzip Components 也是Yahoo Rules之一,而真正目的是減少收發(fā)數(shù)據(jù)量,那么在啟用了Gzip之后,進(jìn)一步提升壓縮效果,也可以更好的達(dá)到目標(biāo),我們知道壓縮的時(shí)候越多重復(fù)的內(nèi)容,壓縮比越高.
廣告json數(shù)據(jù)中,點(diǎn)擊地址是最長(zhǎng)的一塊,大概占到一半左右,包含:網(wǎng)站ID,廣告ID,廣告位ID等等字段,經(jīng)過(guò)一定的算法分段hash后輸出.
一次請(qǐng)求返回多條廣告,我們發(fā)現(xiàn)多條廣告之間雖然廣告ID不同,但網(wǎng)站ID,廣告位ID是一樣的,所以我們調(diào)整了字段順序,把這些PV級(jí)別的數(shù)據(jù)放在一處,這樣在hash后多條廣告的點(diǎn)擊地址當(dāng)中就多了大段的重復(fù)字符串.經(jīng)過(guò)測(cè)試,Gzip后的整體輸出數(shù)據(jù)量降低了三分之一.
可以看出首要理清思路,認(rèn)準(zhǔn)優(yōu)化目標(biāo)而不是單純的匹配Rules追求YSlow高分.

有關(guān)Rules的破與立,不要讓規(guī)則束縛腳步
巨頭們是規(guī)則的制定者,但他們卻從不囿于規(guī)則當(dāng)中:
Put Scripts at the Bottom 腳本放在頁(yè)面底部,在DomReady中執(zhí)行JS是對(duì)前端開(kāi)發(fā)影響最深遠(yuǎn)的規(guī)則之一,而YAHOO,Facebook,MicroSoft卻分別用自己的方法解決JS放在底部帶來(lái)的可交互時(shí)間被拖后,初始化時(shí)間過(guò)長(zhǎng)等問(wèn)題(PPT 48頁(yè))
Douglas Crockford講eval is evil.而Google卻應(yīng)用eval做JS的增量更新,給出eval在各種瀏覽器中的性能測(cè)試,讓Google Map 20-25%的用戶(hù)獲得1.25s的速度提升(PPT 37頁(yè))
Steve Souders講要盡量不要使用iframe,而最近卻在twitter中為meboo推介的名為iframed js的跨域無(wú)阻塞異步腳本下載方案拍手稱(chēng)快(PPT 49頁(yè))
這些也是我反復(fù)強(qiáng)調(diào)捋順優(yōu)化思路,認(rèn)清優(yōu)化本質(zhì)的原因:
一.首先認(rèn)清楚規(guī)則帶來(lái)的好處.
二.然后不回避規(guī)則帶來(lái)的問(wèn)題,如果問(wèn)題嚴(yán)重嘗試解決它,守規(guī)則不是借口.
三.如果能獲得更大的好處,我們不妨違反某些規(guī)則,以退為進(jìn),用實(shí)測(cè)數(shù)據(jù)說(shuō)話.

跟隨清晰優(yōu)化思路解決實(shí)際工作中的問(wèn)題
最后再介紹兩則在優(yōu)化思路上的實(shí)踐:
BannerMaker 是我們使用Flash開(kāi)發(fā)的廣告牌設(shè)計(jì)和展現(xiàn)工具,沒(méi)有使用HTML,CSS,JS,相應(yīng)的規(guī)則就用不上.但思路是同樣的!我們的目標(biāo)依然是減少初始化負(fù)載,減少HTTP請(qǐng)求,充分利用緩存資源,等等.詳見(jiàn): BannerMaker2010+性能改進(jìn)路線圖 .
我們的有很多運(yùn)營(yíng)的同學(xué),進(jìn)行簡(jiǎn)單的HTML類(lèi)廣告牌制作,在諸多規(guī)則中,他們又要重點(diǎn)關(guān)注那些?有些技術(shù)不是他們專(zhuān)長(zhǎng),但是順著優(yōu)化的思路就能很好的跟大家解釋為什么要壓縮甚至合并圖片,為什么不要在廣告牌中為了一個(gè)效果引入一個(gè)類(lèi)庫(kù).詳見(jiàn): HTML廣告牌優(yōu)化(運(yùn)營(yíng)版)

在Yslow 34 Rules之后 -- 網(wǎng)站性能優(yōu)化思路和進(jìn)展


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 日韩中文一区二区三区 | 亚洲一区二区三区在线免费观看 | 国产一区二区三区在线视频 | 五月婷婷丁香 | 一本色道精品久久一区二区三区 | 91精品国产高清一区二区三区 | 亚州老熟女A片AV色欲小说 | 精品中文字幕一区 | 黄色a视频| 欧洲一级视频 | 国产高清第一页 | 成熟人妻AV无码专区A片 | 亚洲成人另类 | 91看片淫黄大片欧美看国产片 | 色噜噜狠狠先锋影音久久 | 91欧美精品综合在线观看 | 国产精品毛片无码 | 欧美日韩成人影院 | 欧美电影网 | 精品日韩欧美一区二区三区在线播放 | 中文一区二区 | 一级免费大片 | 成人在线免费观看 | 欧美成人免费网站 | 成人久久精品一区二区三区 | 天天操天天操天天 | 久草97| 欧美激情一区二区三区中文字幕 | 久久精品久久久 | 亚洲 欧美 校园 | 毛片国产 | 国产++欧洲韩国野花视频 | 亚洲欧美韩国日产综合在线 | 九九热在线免费视频 | 成人一级免费视频 | 亚洲欧美影视 | 91av大片| 好骚综合97op | 波多野结衣中文字幕2022免费 | 国产91精品黄网在线观看 | 特级黄视频 |