2011年1月25日 星期二

Windows Prefetch 技術

由於 Windows 每次執行程式時,都需要配置並初始化記憶體,然後再從硬碟載入該程式,這個會花掉不少時間,所以 Windows 會將已初始化過的記體映像儲存一份到 C:Windowsprefetch 資料夾中,以便於下次啟動程式前 (以及開機時) 可以直接將常用程式與開機程式的記憶體映像事先載入記憶體,加快開機與應用程式的啟動速度。

透過刪除 C:Windowsprefetch 資料夾,除了可以減少硬碟使用的空間之外,
還可以解決部份類似以下的問題:
代碼:
"0x7cd649d8" 指令參考的 "0x15c96730" 記憶體。該記憶體不能為 "read"

因此,如果您要將 Windows 做成 sysprep 映像,請記得先清除這個資料夾中的所有檔案,以免系統還原後,因為記憶體大小或系統硬體規格不同,而造成這些映像無法正常使用。

另外,也可以透過系統機碼 (registry) 來設定 prefetch 的行為:
代碼:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters

在這個機碼下有一個 EnablePrefetcher 的 REG_DWORD 的值,意義如下:
0: 停用 prefetch 弁�
1: 將應用程式的記憶體映像事先載入
2: 將開機程式的記憶體映像事先載入
3: 等於 1 + 2 的弁�


試著先把 C:\WINDOWS\Prefetch 裡的*.pf先刪除

沒有留言:

張貼留言

【解Bug小劇場】當Outlook和Excel吵架時:記憶體與磁碟空間的誤會 #Excel

你有沒有遇過這樣的情況? 早上打開Outlook,剛睡醒還來不及喝咖啡,主管就寄來一封「急件」Excel報表。你雙擊開啟,準備展現戰神般的效率時,卻冷不防被 Excel 回絕: 「因為記憶體或磁碟空間不足,Microsoft Excel 無法開啟或儲存任何文件。」 你心想: ...