最近微軟向 Chromium 提交的代碼顯示,基於 Chromium 的 Web 瀏覽器(如 Google Chrome,Brave,Vivaldi,Opera 以及新的 Microsoft Edge)將擁有更快的啟動速度,並使用更少的內存。
微軟轉向 Chromium 陣營后的一個重要變化就是讓更多工程師為 Chromium 帶去優化和改進。而最近微軟提交的代碼則表明,Chrome 的啟動速度和內存使用將會有很大的變化。
在現代化的設備和系統上,Chrome 大都可以快速啟動,但如果嘗試在稍古老一些的計算機上運行 Chrome,我們可能會明顯感受到啟動的延遲。
因為基於 Chromium 的瀏覽器在啟動時需要載入 chrome.dll 和 chrome_child.dll,而在運行緩慢的筆記本電腦上載入這些文件可能需要一秒多的時間 —— 在帶有雙核 CPU 和固態硬碟的 Windows 8.1 筆記本電腦上分別要花費 0.48 秒和 1.13 秒讀取 dll 文件。
為此,開發者猜測,改變預讀參數是否會顯著降低載入時間?在進行更改后,他們發現同一台筆記本電腦可在不到一秒的時間內載入這兩個文件。
在運行緩慢的筆記本電腦(Windows 8.1,雙核,HDD)上,預讀 chrome.dll 需要大約 0.48 秒,預讀chrome_child.dll 則需要大約 1.13 秒。
通過增加預讀取圖像線程的優先順序和一次預讀 2MB 而不是 1MB,最後發現預讀 chrome.dll 需要約 0.48 秒,預讀 chrome_child.dll 則下降到只花費約 0.51 秒。
就內存使用而言,微軟工程師Joe Laughlin 建議對進程內預取器進行更改,這將有利於瀏覽器的 CPU 使用和內存使用。
更改進程內(in-proc)預取程序以將代碼載入到 Image 頁而不是 MapFile 頁以節省 CPU 並提高內存使用率,並且在啟用較大文件的 OS PreFetch 的 OS 構建上不執行任何操作。
請注意,這需要 PreFetchVirtualMemory API,因此暫不支持 Windows 7。
當然提交的代碼還需要測試才能被合併進 Chromium 中,不過能減少 Chrome 的內存使用終歸是好事。
[admin
]