Vista開機慢關機啟動速度慢如何解決|關閉Superfetch和prefetch。網上很多朋友都在談論vista啟動慢的問題,大多有兩方面:
1、硬件配置的問題,特別是顯存小於128MB,內存小於512MB。
2、硬件衝突以及驅動程序不匹配的(當然由於這些原因多導致的啟動慢,存在於所有windows系統上)
其實還可能有另外一個原因:superfetch,這原本是Windows Vista的新技術,用於加速系統運作。
但實際上,在一些慢速硬盤的設備,例如筆記本上,關閉它反而可以提升系統響應速度。我在自己的筆記本上進行測試,關閉superfetch,然後觀察從打開電源到用戶登錄完成,也就是說登錄後,硬盤燈不再常亮,這個過程所需要的時間,節約了大概5-7分鐘。
在理解為什麼superfetch會影響到系統啟動速度的時候,我們需要先講解幾個技術,以充分了解它們的原理。
虛擬內存包括Vista在內的Windows操作系統都一直在利用虛擬內存,它的作用在於,當物理內存不能滿足應用需要的時候,操作系統將開始把應用程序在內存中的部分數據,存儲到硬盤,從而釋放RAM以備他用。這些被存儲到硬盤的數據,以文件的形式存放,通常在根分區,名為Pagefile.sys的隱藏文件。
當需要調用這些數據的時候,操作系統查找pagefile中的數據,並將之返回到內存。在這過程中,由於需要反复的磁盤讀寫,所以可能導致應用程序反應很慢。
預讀Prefetch 於是到了Windows xp,操作系統的設計人員就設計出一種成為預讀Prefetch的技術,這種技術在系統或者應用程序啟動過程中,監視數據在磁盤和內存之間的移動規律或者狀況,預先把那些讀寫頻率較高的數據,保存到%systemroot%Prefetch文件夾擴展名為.pf的文件中,並一種規則高效的方式存放這些文件。這樣,當這些數據被重複讀取的時候,就可以直接從這些緩存文件中讀取,而不用重新讀取硬盤扇區、磁道,尋找數據的原始位置,自然也就加速了應用程序的響應速度。但這種技術主要的緩存方式仍然是基於磁盤的。
快速預讀Superfetch 到了Windows Vista,因為計算機的內存已經日益增大,設計人員開始考慮使用內存作為預讀快取的數據存放空間。但出於兩方面的原因,一內存是不可記憶的,一旦斷電所有數據都將丟失;二內存並沒大到可以容納所有應用程序的程度,故而Superfetch的讀寫操作雖然主要是基於內存,但是將數據寫入內存的同時,仍然會寫入硬盤,以用於數據交換。這些數據以文件形式存在,通常它們的存放位置在%SystemRoot%Prefetch 目錄中擴展名為.db 。
同時,由於Superfetch技術是構建在Prefetch的基礎之上,所以Vista在啟用Superfetch的同時也開啟了Prefetch功能,這也進一步加劇了磁盤讀寫。如果您的計算機硬盤速度碰巧比較慢,比如筆記本的5400轉硬盤,那麼Superfetch反而會導致您的系統變慢。
解決問題我們了解了Superfetch的工作原理,解決系統啟動慢也就不成為問題了。下面對Superfetch的調整,通過註冊表就可以完成了。 superfetch的註冊表鍵值在
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters
那麼提升Vista系統啟動速度以及應用程序響應速度,您可以考慮三種方式:
1、調整 superfetch 緩存級別。
鍵名為 EnableSuperfetch
鍵值為0=停用1=Superfetch 應用程序2=Superfetch 啟動程序3=Superfetch 兩者
默認值為3,您可以嘗試調整這些值,感受一下調整後,系統或者應用程序的響應速度。
2、關閉 prefetch 或者 superfetch
Prefetch的鍵名為EnablePrefetcher,鍵值設置同上。您可以將兩者或者其中一個設置為0,即關閉它們以減少磁盤讀寫。
3、採用 readyboost
此時superfetch將會把緩存的數據文件轉移到閃存存儲上。轉為Readyboost所準備的閃存存儲要比5400轉的筆記本硬盤來得快。我做過一個嘗試,一般的閃存複製數據,大概在3-4MB/s,而readyboost閃存能夠到10MB/s。所以使用readyboost的技術,一方面加速了superfetch的運作效能,另一方面也減少了硬盤的讀取,從而讓您的計算機在運行的時候能夠更快的響應。
其它至於關閉superfetch對休眠會有多大影響,我沒有測試,大家有興趣可以測試一下。