大貓共和國

Meow

Google Chrome在EeePC上的效能調校 (適用於其他SSD硬碟的電腦)

前幾天我寫了一篇Google Chrome瘋狂讀寫硬碟的問題,說明了Google Chrome在EeePC等使用SSD硬碟的電腦上,可能會因為大量的硬碟存取,導致系統緩慢。然而,Google Chrome超快的JavaScript Engine對我來說仍是相當具有吸引力。因此,今天我想進一步探討Chrome在EeePC這種使用SSD硬碟的電腦上要如何調校。

觀察一下Google Chrome的使用者資料目錄,我們會發現有兩個東西占了大部份的空間:

  1. Safe Browsing這個檔案 (我的電腦中目前這個檔案的大小是50MB左右)
    Google Chrome的Safe Browsing功能,會自動從網路上下載惡意網站的黑名單。用Hex Editor打開看看,原來他是SQLite3的格式,使用SQLite3的瀏覽程式就可打開觀查,裡面存放了黑名單的IP資料。或許這就是硬碟瘋狂存取的元兇之一。
  2. Default\Cache資料夾中的檔案
    這個資料夾中則是格式不明的檔案,應該是網頁內容的快取檔案。另外,Google Chrome也對快取的頁面提供了非常迅速的全文檢索功能。因此,我推測這個資料夾中,應該也包函了全文檢索所需要的索引資料。
在上一篇文章中,我已經提到過使用RamDisk加速Google Chrome的方式。然而使用RamDisk時如果要使用Safe Browsing功能,則你有兩個選擇:
  1. 在開/關機時備份Safe Browsing資料,不過這樣必需在開關機時多複製50MB的資料,大幅降低EeePC開關機迅速的優勢。
  2. 在開/關機時不備份Safe Browsing資料,但這樣會造成每次重開Google Chrome時,都需要重新下載Safe Browsing資料,而造成頻寬的浪費
於是,我選擇停用Safe Browsing功能。只要使用網路夠小心,具有相當的網路安全知識,我相信這個功能是沒有那麼必要的。

重新整理一下我的EeePC效能調校步驟:
  1. 安裝RamDisk,假設將RamDisk安裝到磁碟機代號R
  2. 將Chrome的使用者資料路徑移到RamDisk上。
    在Google Chrome的執行捷徑上加上參數:
    –User-data-dir=R:\ChromeUserData
  3. 進到Google Chrome,至選項=>進階選項=>安全性
    取消「啟用釣魚網站及惡意程式防護」
  4. 關閉Google Chrome,至R:\ChromeUserData
    如果已存在名為Safe Browsing開頭的檔案,將其刪除
  5. 在你的硬碟建立一個資料夾,做完RamDisk的資料備份用
    我建立在C:\RamDiskImg (以下都以此資料夾為例)
  6. 建立兩個批次檔,分別在開機及關機時自動執行
    開機批次檔:
    xcopy /s /y /k C:\RamDiskImg*. R:<br />關機批次檔:
    set ramDiskImgDir=C:\RamDiskImg
    md %ramDiskImgDir%\ChromeUserData
    xcopy /s /y /k "R:\ChromeUserData\Local State" %ramDiskImgDir%\ChromeUserData<br />xcopy /y /k R:\ChromeUserData\Default*.
    %ramDiskImgDir%\ChromeUserData\Default<br />xcopy /s /y /k "R:\ChromeUserData\Default\Plugin Data*.*" "%ramDiskImgDir%\ChromeUserData\Default\Plugin Data\"
    (第一行可以代換成你的RamDisk備份目錄)
  7. 接下來設定開關機時自動執行這些批次檔:
    開始=>執行=>鍵入gpedit.msg
    點選電腦設定=>Windows設定=>指令碼 - (啟動/關機)
    分別將開機批次檔、關機批次檔加到啟動/關機的指令碼中
目前我這樣調整,覺得已經相當OK了。執行速度快,開關機時需要製少量資料,可以保留個人設定及Cookie (注意,網頁快取在關機後將不會被保留下來) 。

參考資料:


Update:
現在我在PC上跑Chrome,也會有因為硬碟瘋狂讀寫的現象了,2G Ram+E8400 CPU都慢到不像話。把Safe Browsing關了就一切正常,Google Chrome Help上的Thread也有提到這個問題。我猜測Chrome在Safe Browsing上不知道做了什麼鳥事?每下載一筆IP記錄就用一個Transaction去更新sqlite資料庫嗎?反正先停用Safe Browsing,等待Google修正這個問題吧….

Comments