成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于網頁緩存Facebook是這么做的

移動開發
我們團隊(facebook web團隊)最近針對目前facebook.com沒有緩存的現狀進行了一番討論,主要問題是:在facebook,.我們每天都會發布兩個版本,怎么樣才能令緩存更有效率?怎么樣的緩存策略才適合我們?

在8年之前,Yahoo團隊曾經對網頁中的緩存做了比較詳盡的研究,但是隨著互聯網的高速發展,研究數據發生了一些變化。這篇文章主要是 Facebook的web團隊對現在緩存情況一些數據收集和研究。包括PC和移動端資源被緩存的時間以及資源在存在的時間。網頁緩存是性能優化很重要的因 素,值得一讀。

能力有限,如有翻譯錯誤的地方,歡迎隨時找我交流,我會及時更正:)

正文:

網頁加載速度是每個網站都應該重視的因素。但是往往被大家忽略。緩存是一個提升網站訪問速度非常重要的因素(因為用戶在下次訪問的時候不需要重新計算或者下載已經緩存的資源)

我們團隊(facebook web團隊)最近針對目前facebook.com沒有緩存的現狀進行了一番討論,主要問題是:在facebook,.我們每天都會發布兩個版本,怎么樣才能令緩存更有效率?怎么樣的緩存策略才適合我們?

在找解決方案的時候, 我們發現雅虎性能優化研究博客上已經有了一篇關于性能研究的文章。

但是令我們非常吃驚的是:20%的頁面訪問是在空緩存的情況下進行的。但是這個研究結果距離現在有8年了,那個時代剛發布IE7,jquery也剛發布***個版本,所以我們決定重新研究一下,看現在是不是有所改善。

重新研究:

在 之前的研究當中,Yahoo在服務器創建了HTTP頭設置了圖片的過期時間和上次修改時間,如果圖片沒有發生改變,就用GET請求發送給服務器一個***修 改時間的信息,如果圖片沒有修改,就返回304(沒有修改)來替換200(請求成功)。因為服務器可以記錄瀏覽器請求的請求狀態,所以Yahoo用服務器 日志來統計緩存的用戶數。

像那樣的研究方法一樣,我們創建了一個既能發送圖片請求也能在數據庫當中記錄日志的PHP終點。這張圖片用http頭信息來控制瀏覽器的緩存和其他通過代理產生的緩存。之后在用戶請求圖片的時候記錄這些信息。

這個圖片HTTP頭信息的設置是這樣的:

 

011.jpg

 

但是因為一些已知的BUG,我們在IE7和IE8中把兩個屬性替換成了下面這樣:

 

012.jpg012.jpg

 

當瀏覽器發送請求給圖片時候,將會發生兩件事情:

1.因為瀏覽器從來沒有打開過這張圖片,所以沒有額外的頭信息,服務器將返回一個狀態碼:200 Success 接著返回圖片數據給瀏覽器,之后瀏覽器會緩存文件的HTTP頭信息當中的Last-Modified(文件***修改時間)和ETag(被請求變量的實體值)

2. 瀏覽器檢查if-none-match或者if-modified-since頭信息,如果之前有打開過。將會不加載圖片數據直接返回 Status:304 Not Modified(沒有更新)。同時我們把Last-Moidified頭信息用$header['if-modified-since']替換 掉$now(),所以每次返回的內容都將是一樣的。

現在剩下問題是我們在哪里應用這張圖片,***我們決定在Facebook的搜索條下面包含一個img標簽,這樣每次facebook加載的時候都會渲染這張圖片。在整個頁面重新加載的時候,資源將會根據緩存的頭信息進行加載。這將是***的方式來測試我們的想法。

在確保endpoint可以正常記錄請求、圖片標簽可以正常訪問了之后,我們正式開始了這次研究!

研究結果:

在 數周的數據收集之后,我們決定來研究一下7天***比較有價值的數據。數據的統計結果依舊讓我們感到吃驚:依舊有25.5%的請求是空緩存的。為了讓數據看 起來更清晰,我們分隔了PC和手機的統計數據,但是數據依舊差不多:PC有24.8%而手機端有26.9%是空緩存的。這個結果不太符合我們預期,所以我 們更加深入的研究了這個數據。

把PC端的瀏覽器分開來統計可能更加清楚:

013.jpg

根 據上面一周的數據來看:用戶用chrome和opera緩存的幾率更大。你可能注意到你這個圖表中并沒有firefox瀏覽器的數據,那是因為 firefox 31版本以及更早期的版本在我們的統計中有80%的緩存概率,但是在32版本和更高的版本當中有很明顯的下降。那是因為firefox的緩存策略和我們的 統計方法有點沖突(http://www.janbambas.cz/new-firefox-http-cache-enabled/),所以我們就干脆去掉了firefox瀏覽器的數據統計。

好了,現在讓我們來看看移動端的數據:

014.jpg

可以看到,大部分瀏覽器的緩存比例是在68%和84%之間。移動平臺的數據差別還是挺大的,我們想可能都是比較低端的移動設備(Year class: A classification system for Android)。除此以外數據跟桌面端還是比較相似的。

下面這個圖分別是移動端和手機端空緩存用戶所占的比例:

015.jpg

平均來看,有44.6%的用戶是空緩存的,這個也很符合Yahoo團隊在2007年做的研究。

更進一步:

到這里,文章還沒有完結。在Facebook,我們迭代速度非常快,每天幾乎都會發布兩個版本。這個驅動我們去思考,多長時間的緩存設置適合我們呢?我們將if-modified-since這個文件頭返回的時間減去當前時間來尋找答案。

所以我們根據上面的方法,我們統計了從***次正常請求到發生304請求的時間(這說明了用戶從沒有緩存到有緩存經歷了多長時間),下面是數據生成的圖標:

017.jpg

橫軸是以小時為單位的時間值,垂直豎線P50和P75表示在某一時間內緩存請求所占的比例,例如P50告訴我們在47小時的時候有50%的請求是有緩存的,同樣,p75意味著75%的請求將是有緩存的。

移動端的測試數據告訴我們大概在12小時的時候有50%的請求是有緩存的。

實際應用:

總體來看我們的統計跟2007年是比較相似的,如果我們firefox瀏覽器(32和更高版本)不計入統計的話:這次有緩存的比例***點是84.1%,高于2007年的80%。

另一方面,緩存的存在時間并不是太長。基于我們的研究,雖然在一個新版本發布的47小時之后有42%的請求將會帶有緩存,但是這個緩存資源在電腦上存在時間也大概是這個時間。這個新的發現,對其他網站很有參考意義。

為 什么緩存存在的時間不是太長?其實非常容易理解,從互聯網的發展來說,網站的體積從2007到現在發生了不小的變化。拿2007年年來說,那時候我們家里 的網速大概是2.5M,Yahoo的首頁有168.1KB。現在我的手機都有了8G下行,Yahoo首頁已經變到768KB。現在市面上網頁的平均大小已 經超過1MB了,這將給我們的瀏覽器的良好運作帶來很大的壓力(譯者注:因為需要緩存的資源太多,超過瀏覽器設置的默認資源緩存大小會自動刪掉早期的一些 緩存文件,例如ie默認的是50MB,而chrome的是320MB)。

因此合理利用瀏覽器緩存比8年之前更加有意義。

*** 實踐告訴我們:盡量用外鏈樣式表和JS、讓headers設置Cache-Control and ETag,并盡可能的壓縮我們的數據、用不同的網址管理緩存、分割需要頻繁更新的資源。這些優化方法不僅適用于像facebook這樣規模的項目,其他網 站也可以應用它們。雖然我們的更新頻率會對緩存的優化帶來負面的影響,但是這個不是本次文章所研究的重點。事實上,我們已經開始運用這次的研究成果來讓所 有訪問facebook的用戶收益。

責任編輯:chenqingxiang 來源: 騰訊tgideas
相關推薦

2024-02-21 23:03:56

代碼系統

2016-02-25 10:46:33

數據排序數據處理谷歌

2019-12-04 14:59:01

分布式緩存高可用

2022-01-14 14:19:38

ReactTS前端

2019-10-08 12:32:07

運維架構技術

2013-11-27 12:40:21

鮑爾默微軟

2021-04-08 09:20:46

Facebook黑客論壇泄露的數據

2023-07-27 13:44:19

業務用戶畫像

2023-06-27 11:57:24

用戶分析挖掘法ABtest

2018-06-10 20:53:53

2014-07-10 09:15:38

負載均衡安全網關

2024-01-18 08:15:05

AIGC知識圖譜大模型

2022-07-11 11:28:45

數據分析業務消費

2024-10-15 11:54:38

2024-11-27 11:44:08

2013-03-29 09:54:05

創業創業者

2017-08-28 16:33:46

UI界面模式用戶

2020-03-23 10:42:56

團隊協作阿里

2018-10-22 09:17:22

數據中心阿里微軟

2024-09-20 19:28:47

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 老司机精品福利视频 | 日韩视频在线免费观看 | 三级国产三级在线 | 欧美男人亚洲天堂 | 久久99国产精品久久99果冻传媒 | 99re在线视频 | 99精品欧美一区二区三区综合在线 | 黄色一级大片在线免费看产 | m豆传媒在线链接观看 | 成人黄色在线观看 | 狠狠做深爱婷婷综合一区 | 亚洲精品一区中文字幕乱码 | 在线视频日韩精品 | 成人深夜福利网站 | 伊人免费网| 国产丝袜一区二区三区免费视频 | 欧美精品一区在线发布 | 欧美a在线观看 | 东京久久| 亚洲精品久久久久久一区二区 | 免费色网址 | 日韩中文在线 | 日韩精品一区二区三区视频播放 | 亚洲精品国产电影 | 四虎影音 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 国产成人一区二区三区久久久 | 91一区二区 | 国产精品日韩在线 | 欧美久久精品一级c片 | 精品国产一区二区三区久久久蜜月 | 中文字幕99 | 日一区二区三区 | 国产免费麻豆视频 | 中文字幕久久精品 | 国产精品久久久久久久久久久久 | 日本精品视频在线观看 | 婷婷成人在线 | 国产91久久久久久 | 99久9 | 天天人人精品 |