
如果你已經使用它一段時間了 Windows你可能聽過 Prefetch 和 SuperFetch(現在叫 SysMain)。雖然這些函數已經存在多年了, 由於它們對錶現的影響,它們持續引發爭論。對於配備固態硬碟、擁有大量多媒體庫或用於特定任務的電腦來說,這一點尤其如此。在本文中,我們將撥開迷霧,揭示真相,並將一切置於當下脈絡中進行分析。
我們從一個許多人都認同的想法出發:在我們所處的時代,透過改進… 硬件 以及Windows的成熟度, 令人震驚的是,某些「粗魯」的行為仍然存在。有些情況下,系統會不區分地使用快取(例如,為只執行一次的安裝程式建立追蹤記錄),或者 SuperFetch 服務會啟動,存取大型檔案並導致磁碟活動激增。讓我們拋開技術細節,來看看每項技術的具體作用、適用場景以及何時應該調整或停用它們。
Windows 系統中的 Prefetch 和 SuperFetch 是什麼?
預取 這是 Windows XP 中引入的一項功能,在 Windows 10 和 11 中仍然存在。它的目的是 加快系統和應用程式啟動速度 保存文件和依賴項存取信息,以便在以後的運行中重複使用。這些資訊以 .PF 副檔名的檔案形式保存在 C:\Windows\Prefetch 資料夾中。
SuperFetch 則更進一步: 了解您的使用習慣並預先載入到記憶體中。 它會優化您經常打開的應用程式的資料和二進位文件,從而加快它們的響應速度。在較新版本的 Windows 10(1809 及更高版本)中,該服務的名稱為: 系統主儘管其運作方式保持不變。
需要強調的是,這兩種功能都涉及 延伸閱讀和寫作預取日誌會記錄每個應用程式和每次啟動的追蹤資訊;SuperFetch/SysMain 會保持記憶體處於「熱」狀態,以加快常見啟動操作的速度。如果使用得當,它能帶來幫助;但如果濫用,則會產生一些並非總是有益的活動。

軟體預取與硬體預取(CPU)
區分 軟體預取 (來自作業系統或編譯器的那個)和 硬體預取 (在 CPU 層面)。在軟體層面,Windows 分析存取並進行預測。 可能的數據和說明並使它們能夠減少應用程式啟動或開啟延遲。
這個概念也存在於編譯領域:例如,GCC 具有原語。 __builtin_prefetch這樣一來,硬體就可以被提示去預測某些數據。這些提示可以 消除瓶頸 在記憶體存取中,當模式相對可預測時。
在CPU中,x86架構具有以下指令: 預取 以及無需操作系統幹預即可嘗試向前推進的專用機制 數據或指令 這取決於不同的快取等級。這就像一個預測遊戲:如果預測正確,延遲就會降低;如果預測錯誤,就會污染快取。
這種方法既古老又有效: Intel英特爾 8086 已經有一個了 6位元組預取佇列 用於指令和摩托羅拉 68000 的 4 位元組之一。如今,CPU 預取器要複雜得多,可以區分 順序模式和步幅 並且可以在某些進階 BIOS/UEFI 設定中停用。注意:不要將其與…混淆。 IDE預取模式 舊版韌體指的是對 IDE 驅動器的最佳化。
預取資料夾、.PF 檔案以及 Windows 的工作原理
C:\Windows\Prefetch 資料夾儲存副檔名為 .prefetch 的檔案。 .PF 與啟動和每個應用程式都相關。每次執行程式時,Windows 都可以建立或更新其對應的預取(例如, CMD.EXE-087B4001.PF)並在未來的版本中重複使用這些資訊。
PF 檔案包含兩個主要部分:一個頭部,以及一個頭部資訊。 有用的元數據 (可執行檔案名稱、路徑、時間戳記(例如建立時間戳記、上次存取時間戳記和修改時間戳記)以及執行計數器)和第二部分包含 大約10秒的「快照」。 以及在第一次執行階段所涉及的文件和 DLL。
這些文件具有可識別的特徵,便於在取證分析中恢復。用二進制術語來說,就是識別符。 SCCA 附有一個可以看作是 11 00 00 00 53 43 43 41 的頁首。由於沒有正式的“頁腳”,從未分配的空間中切割時,通常會提取一些“填充物”,這些填充物在驗證內容時會被丟棄。
雖然很多人認為「刪除預取資料夾」可以加快電腦運作速度, 這種好處至多是微乎其微且暫時的。事實上,刪除後的第一次執行速度會比較慢(Windows 需要重新學習和重新映射),啟動過程可能需要更長的時間來重建啟動資訊。
如何啟用或停用預取和超級預取(系統主控)
預取器配置由註冊表控制: HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\PrefetchParameters在那裡你會發現價值 啟用預取器 (在某些文字中顯示為 EnablePrefetch)有四個選項。
- 0 = 殘障人士 完全。
- 1 = 僅應用程式預加載.
- 2 = 僅啟動預充電 系統的。
- 3 = 創業與應用 (最優值和預設值)。
若要在 Windows 10/11 中操作 SuperFetch,請開啟 SERVICES.MSC 並查找 SuperFetch(在現代版本中它顯示為 系統主從它的特性中,你可以… 更改啟動類型 殘疾人士和 停止高溫服務 如有必要。
人們普遍認為Windows會自動偵測 SSD 並停用預取/超級取功能。 在實踐中, 這種情況並非總是發生。 因此,在所有機器或版本中,許多擁有固態硬碟的使用者在評估其實際影響後選擇手動停用它們。
機械式硬碟 (HDD) 與固態硬碟 (SSD):何時有利,何時不利。
在機械硬碟(HDD)中,存取延遲較高, 預取和超取通常是有益的 因為它們能使資料隨時可用,從而減少磁碟等待時間。因此,對於配備硬碟的系統來說,維護硬碟至關重要。 啟用預取器=3 大多數情況下都是合理的。
使用固態硬碟後,存取時間非常短,預先載入實用程式 已大幅減少保持 SysMain 進程運作可能會與其他工作負載爭用資源,在某些情況下還會造成不必要的活動。有些人更傾向於將 SysMain 進程關閉。 啟用預取器=0 有些人會停用 SysMain;有些人則會保留所有預設設定並進行測量。關鍵在於觀察系統的實際運作。
例如,在 Windows Server 2003 系統中,預設值為 2(僅啟動)這說明微軟會根據產品及其典型使用情境調整不同的設定檔。
請記住,在清理預取資料夾或變更其設定時, 首次運行應用程式時,速度會稍慢一些。 系統會逐步重新產生 .PF 檔案。如果你的目標是“榨乾每個 CPU 週期的每一滴性能”,你可以嘗試一下;否則,就讓它運行,然後專注於解決更嚴重的性能瓶頸。
Windows索引、替代方案和生產力
另一個與性能相關的方面是 標引Windows 索引器使搜尋更加便捷,但它會定期進行讀寫操作;如果您想調整其操作,請檢查… 索引選項.
所有內容都使用不同的索引方法,並且通常被認為是 速度大幅加快 在檔案系統中 NTFS除了消耗資源少之外,它還可以整合到… 巴拉德塔里亞斯 透過社區項目,提供簡化且無需等待的搜尋體驗。
無論你選擇哪一個,其原理都與預取/系統主函數類似: 衡量實際影響 在您的電腦上,優先考慮工作效率。在某些電腦上,停用索引並依賴「一切皆可存取」功能,可顯著提升效能。
常見問題及真實案例
有些人會因為以下行為而感到惱火: Windows 產生 .PF 檔案。 對於一次性可執行文件,例如 SETUP.EXE實際上,質疑其效用是合理的:你只需安裝一次,預取功能就很少能再次派上用場。在「一次性」庫中,這一點尤其重要。 缺乏歧視 它顯示了。
另據觀察,在更新程式時,系統可能會出現以下情況: 累積舊版本的痕跡 它並沒有徹底清理所有條目,甚至會留下已卸載應用程式的痕跡,使預取資料夾充滿無用的殘留檔案。
要處理卸載後殘留的文件,可以使用諸如此類的工具。 批量垃圾卸載程序(BCUninstaller) 雖然一開始需要一些學習,但這確實有幫助。 尋找殘羹剩飯 並且可以幫助刪除相關數據,包括一些不再有意義的預取數據。
SuperFetch/SysMain 存在一些特別棘手的情況:例如,擁有龐大音樂庫的系統(例如, 數百GB MP3或者對於大型 Outlook PST 文件,他們可能會注意到會話 “磁碟抖動” 每週數次,每次持續數小時。服務停止後,通常會立即停止,但並非總是立即停止。
一個常見的問題是是否存在 排除清單 防止 SuperFetch 存取某些路徑或應用程式(例如 Outlook、iTunes、媒體庫等)。 Windows 系統不包含此功能。 官方的細粒度排除機制 對於 SysMain 來說,如果該活動具有破壞性,通常的實用方法是停用該服務或使用通用策略縮小其範圍。
預取文件的取證價值
除了效能之外,.PF 檔案在取證方面也具有巨大的價值。從其內容中,我們可以推論出… 執行了什麼操作,何時執行,從何處執行,執行了多少次依賴關係「快照」顯示了首次執行後立即修改的 DLL 路徑和檔案。
這使您能夠發現路線 非常規的或隱藏的 (例如,開啟的名為「one.xls」的 Excel 檔案位於 TrueCrypt 磁碟區上,或位於 System32 下的異常目錄中)。分析人員經常會發現隱藏的惡意工具。 在偽裝的資料夾中 多虧了 .PF 這個線索。
預取也有助於識別 使用者和執行來源這些路徑可以顯示 C:\\Documents and Settings (XP) 或 C:\\Users (Vista/7/10/11) 下的帳戶,或來自下列位置的登入資訊: 存儲 外部看到 \\DEVICE\\HARDDISKVOLUME1\\ 與看到類似 \\DEVICE\\HARDDISK\\DP(1)0-0+D\\ 的條目並不相同,後者是單元的典型特徵。 USB.
如果 MFT 中的時間戳記已被竄改(例如,使用以下技術): 時間戳),.PF 元資料可以「揭示」真相。首次和最後一次訪問,以及執行計數器, 揭露真實活動 即使有人試圖掩蓋,二進位檔案仍然存在。
.PF 檔案也用於分析效能。 用戶類型如果痕跡 蟒蛇Perl、IdaPro、 VMWare的 如果使用 nmap、Metasploit 或 netcat 等工具,我們可以推斷使用者俱有更濃厚的技術背景(或可能安裝了攻擊性工具)。相反,如果瀏覽器、電子郵件用戶端和社交應用程式占主導地位,則使用模式有所不同。
用於分析和恢復預取功能的工具
在眾多經典工具中,以下幾種特別突出: WinPrefetchView (NirSoft),它可以列出帶有元資料的 .PF 檔案並允許匯出為 HTML,以及 Mark McKinnon 的實用程序, 預取訊息.exe y 預取解析 GUI.exe它可以正確解析標頭和 NTFS/MFT 資訊。
如果預取資料夾被清理(無論是主動清理還是維護清理),仍然有可能發生這種情況。 恢復已刪除的 .PF 文件 在未分配空間中尋找其簽名。由於它們沒有頁腳,因此在雕刻文件時出現這種情況是正常的。 拖曳多餘位元組驗證其完整性後,這些文件將被丟棄。
一個實際的提醒:有些應用程式要等到…才會寫入 .PF 檔案。 他們關閉例如,如果您在 14 日 13:00 運行 netcat,並在 15 日 15:00 關閉它,則預取將在關閉時實現。 改變時間軸此外,啟動資料夾中的程式不會產生對應的 .PF 檔案。
正確解讀與誤報
有些痕跡很容易被誤解。參見 .PF 檔案。 DEFRAG.EXE 或 DFRNTFS.EXE 不一定意味著用戶試圖抹去痕跡;用戶本人 任務計劃程序 啟動碎片整理流程以重新組織資料條目 佈局.ini增加這些 .PF 的計數器。
預取資料夾中的檔案數量也具有參考意義。 Windows 限制了 .PF 的數量。 請注意衛生狀況,其數量和多樣性可以表明該系統是新的(應用程式少)還是已經使用多年… 大量使用 很久了
如果 .PF 檔案完全遺失,可能是有人刪除了它們,或者它們被添加到了註冊表中。 啟用預取器=0在 Windows XP/Vista/7 中,預設值為 3(應用程式和啟動),而在 在Windows Server 2003 以前是 2(僅啟動)。
良好的維修習慣
避免使用 Prefetch 的「強迫性清潔」功能: Windows 管理該資料夾 並清除舊條目。每週刪除所有 .PF 檔案很少有幫助,而且會在下次啟動或首次運行時引入延遲。
如果您擔心不再使用的舊版本或應用程式會留下痕跡,請選擇 進階卸載程式 (例如 BCUninstaller)可以檢測殘留檔案並執行更徹底的清理。這可以最大限度地減少預取過程中的“噪音”,同時又不會妨礙系統學習。
當 SysMain 導致破壞性活動時(尤其是在 PC 上), 小內存 或巨型圖書館嘗試暫停服務並觀察。如果團隊恢復流暢運行,則評估情況。 禁用 SysMain 僅保留啟動/應用程式預取或縮小其範圍。
如果搜尋功能讓你感到煩躁,不妨考慮將其關閉。 Windows 索引 並選擇“所有功能均整合到工作列”選項。這是一種簡單的方法。 獲得敏捷性 盡量不要對系統進行過多改動。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
