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的非常好速度應該非??斓膚eb應用,也許其實存在著嚴重的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前陣子剛剛做了這樣的修改。  回復  更多評論
            

          主站蜘蛛池模板: 景德镇市| 高淳县| 吴忠市| 隆尧县| 邳州市| 莲花县| 孟村| 龙山县| 建水县| 兰西县| 琼海市| 亳州市| 勐海县| 峨眉山市| 抚顺市| 松溪县| 长海县| 锡林郭勒盟| 城口县| 玉林市| 南昌县| 营口市| 嘉义县| 千阳县| 客服| 姚安县| 拉萨市| 肥东县| 图们市| 平泉县| 曲水县| 安泽县| 苗栗市| 双牌县| 皮山县| 绩溪县| 海丰县| 堆龙德庆县| 华安县| 吉首市| 贵南县|