IT之家 6 月 6 日消息,谷歌 Chromium 博客 6 月 3 日發(fā)布博文,表示通過(guò)調(diào)整請(qǐng)求 cookie 的方式,早期測(cè)試顯示所有平臺(tái)的性能都有所提高。
問(wèn)題所在
瀏覽器在單進(jìn)程時(shí)代,由于相關(guān)數(shù)據(jù)都保存在內(nèi)存中,可以較為輕松地管理 cookie。而現(xiàn)在包括 Chrome 在內(nèi)的主流瀏覽器都使用多進(jìn)程來(lái)提高性能和安全性。
Chrome 瀏覽器會(huì)為每個(gè)窗口、其他一些功能運(yùn)行一個(gè)新進(jìn)程,意味著處理 cookie 的方法必須調(diào)用更多的查詢,從而減慢運(yùn)行速度。
谷歌表示在 Chrome 瀏覽器中,重復(fù)請(qǐng)求 cookie 是導(dǎo)致很多交互變慢的原因。IT之家翻譯谷歌博文內(nèi)容如下:
我們通過(guò)對(duì)緩慢交互的現(xiàn)場(chǎng)跟蹤發(fā)現(xiàn),一些網(wǎng)站正在觸發(fā)連續(xù)多次獲取 cookie 的低效場(chǎng)景。
我們采用了額外的指標(biāo)來(lái)衡量 GetCookieString () IPC 在所有導(dǎo)航中出現(xiàn)冗余(返回的值與上次相同)的頻率。
我們驚訝地發(fā)現(xiàn),87% 的 cookie 訪問(wèn)是多余的,在某些情況下,這種情況每秒可能發(fā)生數(shù)百次。
在某些情況下,特別是當(dāng)多個(gè)網(wǎng)站同時(shí)發(fā)出快速請(qǐng)求時(shí),這些請(qǐng)求每秒會(huì)發(fā)生數(shù)百次,造成嚴(yán)重的延遲。最終,從網(wǎng)絡(luò)服務(wù)同步(一次一個(gè))獲取 cookie 的舊方法造成了瓶頸。
解決方案
谷歌表示 Chrome 瀏覽器不再重復(fù)檢查網(wǎng)絡(luò)服務(wù),而是保存 cookie 數(shù)據(jù)及其版本號(hào)的本地副本,這樣,Chrome 瀏覽器就可以檢查 cookie 是否擁有最新數(shù)據(jù),而無(wú)需重復(fù)請(qǐng)求。
根據(jù)谷歌工程師的說(shuō)法,這一改變讓 cookie 相關(guān)信息的數(shù)量減少了 80%,cookie 訪問(wèn)速度加快了 60%。
谷歌官方在博文中表示:
我們的想法是,document.cookie 的每個(gè)值現(xiàn)在配對(duì)單調(diào)遞增的版本。每個(gè) renderer 都會(huì)將上次讀取的 document.cookie 與該版本緩存在一起。
網(wǎng)絡(luò)服務(wù)將每個(gè) document.cookie 的版本保存在共享內(nèi)存中。因此,渲染器無(wú)需向網(wǎng)絡(luò)服務(wù)發(fā)送進(jìn)程間查詢,就能知道自己是否擁有最新版本。
在早期測(cè)試中,谷歌觀察到所有平臺(tái)部署該更新之后,性能最多提高 5%。
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。