emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

          小小和rizen嘗試過定位一個cache-read耗費時間隨機的變得很長的詭異問題,排除過了文件內容、文件類型、文件頭等各種影響,但是很遺憾沒有最終結論。emu那天看知道這個事情后猜測,會不會就是很簡單的多個cache-read操作相互競爭堵塞導致的呢?這個其實很容易驗證了。寫了一個簡單的小頁面應用了一組圖片,然后抓包重新打開頁面,就看到下面這個圖了:




          第一個cache-read耗時0.2秒多,第二個(并行發起)0.3秒多,第三個0.4秒多,接下去每個圖片的耗時差不多都比上一個慢0.1秒以上。結論很明顯了,并發的cache-read會相互堵塞,非常嚴重的相互堵塞。
          以上抓包是在IE6下完成的。在IE7和IE8下面情況要好一些,但是問題性質是相同的。
          很多我們曾經以為cache的非常好速度應該非常快的web應用,也許其實存在著嚴重的cache-read速度瓶頸而不為我們所知。
          網上沒有搜到太多關于cache-read時間的文章,看來真是個盲點。

          解決方案和網絡延遲是類似的,減少cache-read請求,把多個小文件和小圖片合并成大文件和大圖片(而不要一廂情愿的以為小文件被瀏覽器緩存后會有很好的速度表現),區分優先級引用資源。還有一個可能有用的:交錯的發起不可避免的異步動態網絡請求和cache-read請求,讓網絡延遲和cache-read延遲時間疊加在一起,來節省用戶實際要等待的時間。

          posted on 2010-04-09 22:58 emu 閱讀(3248) 評論(2)  編輯  收藏 所屬分類: web優化

          評論

          # re: 不可忽略的 cache-read time(緩存讀取延遲時間) 瓶頸 2010-04-28 11:50 xs

          ....厄... 貌似還真有這回事。為啥不能并發咧....
          目前看來只能盡量減少請求數了....

          驗證碼:9444..  回復  更多評論
            

          # re: 不可忽略的 cache-read time(緩存讀取延遲時間) 瓶頸 2010-06-01 09:39 emu
          @xs
          其實也不只是并發的情況下有這個問題,當打開一些大網站的時候第一個請求如果是cache或者304response,也會有類似的問題。
          有米的大網站在解決這個問題的時候比較爽快,首頁反正也常更新,不要cache了,全部走http,這樣還快一些。比如sina前陣子剛剛做了這樣的修改。  回復  更多評論
            

          主站蜘蛛池模板: 麻江县| 明溪县| 石狮市| 静安区| 南投市| 泗洪县| 成都市| 麦盖提县| 永丰县| 怀安县| 宝坻区| 长子县| 大同市| 金华市| 营口市| 灵寿县| 资中县| 珠海市| 温宿县| 广州市| 铁力市| 松桃| 日喀则市| 彭州市| 穆棱市| 清新县| 莆田市| 玉屏| 遵义县| 柳河县| 黎平县| 顺平县| 凤阳县| 毕节市| 锦州市| 霍林郭勒市| 固原市| 印江| 正安县| 汝城县| 江津市|