6 月 6 日消息,谷歌 Chromium 博客 6 月 3 日發(fā)布博文,表示通過調(diào)整請求 cookie 的方式,早期測試顯示所有平臺的性能都有所提高。

問題所在
瀏覽器在單進程時代,由于相關(guān)數(shù)據(jù)都保存在內(nèi)存中,可以較為輕松地管理 cookie。而現(xiàn)在包括 Chrome 在內(nèi)的主流瀏覽器都使用多進程來提高性能和安全性。
Chrome 瀏覽器會為每個窗口、其他一些功能運行一個新進程,意味著處理 cookie 的方法必須調(diào)用更多的查詢,從而減慢運行速度。
谷歌表示在 Chrome 瀏覽器中,重復請求 cookie 是導致很多交互變慢的原因。IT之家翻譯谷歌博文內(nèi)容如下:
我們通過對緩慢交互的現(xiàn)場跟蹤發(fā)現(xiàn),一些網(wǎng)站正在觸發(fā)連續(xù)多次獲取 cookie 的低效場景。
我們采用了額外的指標來衡量 GetCookieString () IPC 在所有導航中出現(xiàn)冗余(返回的值與上次相同)的頻率。
我們驚訝地發(fā)現(xiàn),87% 的 cookie 訪問是多余的,在某些情況下,這種情況每秒可能發(fā)生數(shù)百次。
在某些情況下,特別是當多個網(wǎng)站同時發(fā)出快速請求時,這些請求每秒會發(fā)生數(shù)百次,造成嚴重的延遲。最終,從網(wǎng)絡服務同步(一次一個)獲取 cookie 的舊方法造成了瓶頸。

解決方案
谷歌表示 Chrome 瀏覽器不再重復檢查網(wǎng)絡服務,而是保存 cookie 數(shù)據(jù)及其版本號的本地副本,這樣,Chrome 瀏覽器就可以檢查 cookie 是否擁有最新數(shù)據(jù),而無需重復請求。
根據(jù)谷歌工程師的說法,這一改變讓 cookie 相關(guān)信息的數(shù)量減少了 80%,cookie 訪問速度加快了 60%。
谷歌官方在博文中表示:
我們的想法是,document.cookie 的每個值現(xiàn)在配對單調(diào)遞增的版本。每個 renderer 都會將上次讀取的 document.cookie 與該版本緩存在一起。
網(wǎng)絡服務將每個 document.cookie 的版本保存在共享內(nèi)存中。因此,渲染器無需向網(wǎng)絡服務發(fā)送進程間查詢,就能知道自己是否擁有最新版本。
