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 閱讀(3238) 評論(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前陣子剛剛做了這樣的修改。  回復  更多評論
            

          主站蜘蛛池模板: 和平县| 信丰县| 娄烦县| 崇信县| 青川县| 利辛县| 营山县| 西藏| 土默特右旗| 秦安县| 崇文区| 西乌珠穆沁旗| 六枝特区| 哈巴河县| 长治市| 应用必备| 望都县| 临潭县| 阿克陶县| 波密县| 中山市| 扶沟县| 长丰县| 漾濞| 抚州市| 黎川县| 霍城县| 荥阳市| 汉阴县| 龙海市| 区。| 北票市| 徐闻县| 略阳县| 武川县| 铁岭市| 保定市| 丰镇市| 平阳县| 江都市| 平阴县|