複製鏈接
請複製以下鏈接發送給好友

SuperFetch

鎖定
Superfetch內存管理機制會將用户可能使用的應用程序頁面利用內存可用空間進行預加載;儘可能地避免系統發生從硬盤的頁面調用;讓應用程序最快速度開啓;不會由於計算機長時間閒置而使突然使用變得響應遲緩;在退出大型應用程序後會主動將之前被迫轉移到虛擬內存中的頁面重新調入內存當中。
中文名
超級預讀取
外文名
SuperFetch
避    免
系統發生從硬盤的頁面調用
轉    移
虛擬內存
重新調入
內存當中

SuperFetchXP Superfetch

SuperFetchVista

下面的Superfetch技術,即“超級預讀取”,由XP系統中的Prefetch進化而來。
下面,先説什麼是Prefetch:
Windows XP操作系統中,微軟對虛擬內存技術做了進一步改進,發展出了預取技術(Prefetch),預取技術的基本思路是,在載入某個程序之前,預先從硬盤上中載入一部分該程序運行所需的數據到物理內存中,這樣便能加快程序的啓動速度
在Windows XP中,使用預取技術的具體方法是:在系統和應用程序啓動時,監視內存頁面與交換文件以及硬盤上其它文件的數據交換狀況,當發生數據交換時,Windows XP會紀錄下每一個程序運行時經常需要讀取的硬盤文件,並將讀取的情況記錄在\windows\Prefetch目錄中的pf後綴名文件中。
一旦建立了這些pf文件,在每次需要啓動系統或相應程序的時候,Windows會首先中斷當前準備載入的程序,而轉去查找\Windows\Prefetch目錄,看是否有當前載入程序的紀錄,如果有紀錄,則馬上按照紀錄的情況載入程序運行過程中可能會用到的所需文件到物理內存中。這項任務完成之後,Windows才繼續載入被中斷的程序。
經過這樣的處理之後,在程序運行過程中,需要讀取那些文件時,由於文件已經被“預取”到內存中,此時就不用再到硬盤上進行讀取,因此減輕了程序載入過程中頻繁交換內存頁面與交換文件的現象,改善了內存不足時程序運行的響應速度。
為了進一步優化預取操作的效率,Windows XP還會定期對pf文件進行分析處理,組織好程序文件載入的順序,並將這些分析處理後的信息存放在\Windows\Prefetch目錄中的Layout.ini文件中。同時還會通知磁盤碎片整理程序,在下次運行碎片整理時,按照Layout.ini文件記錄的內容,將相關文件的位置整理在連續的硬盤區塊中。
這項技術從根本上説仍然屬於被動式的調度。換句話説,只有在程序主動發起載入請求時,Windows才會進行相關的調度操作。
被動式調度的存在可能對系統性能造成一些影響。我們考慮這樣一個例子,假設你有在工作的午休時間運行殺毒軟件的習慣,那麼在下班前,一般會停止處理工作程序,然後運行殺毒軟件,此時,如果使用的是Windows XP,那麼操作系統會將工作程序所佔用的內存頁面寫入硬盤交換文件中,並讀取殺毒軟件的文件載入內存。午休過後,殺毒軟件已經運行完畢,但是你在重新開始使用工作程序的時候,系統仍然需要經歷殺毒軟件和工作程序的硬盤交換文件與內存頁面的交換過程,此時程序的響應速度明顯降低。
如果系統能夠進一步自動記錄下這些經常性的操作行為所發生和結束的時間,當時運行的前台和後台軟件等等詳細情況,那麼在內存有空閒空間的時候,就可以在預定的時機預先將一部分文件載入到內存中,這樣就避免了上面例子中發生的不愉快情況。

SuperFetch什麼是Superfetch

不錯,這正是Windows Vista中Superfetch技術所能解決的問題。由於採用了新算法,Superfetch不但繼承了Windows XP預取技術的全部優點,還進一步具備監視程序運行時狀況,時間等詳細情況的功能,可以根據用户的使用習慣,自動預先將存放在硬盤的交換文件轉換到內存頁面中去,使用户經常運行的程序啓動時的速度得到進一步的加快。
Superfetch技術的中心思想是:“過分空餘的內存空間即是浪費”。的確,如果一個操作系統總是保留着過多的空餘物理內存耗費電能,卻不能夠利用這些多餘的內存空間提高系統性能的話,為什麼不更好地利用這些多餘的內存空間呢?將這些多餘的物理內存作為緩存使用,就是Superfetch技術的本質。而也正是由於採用了這種以內存為緩存的策略,才造成了Vista對內存容量的飢渴!
如果你對這項技術感到反感,或者物理內存容量實在太小,那麼到管理工具—服務中關閉Superfetch服務也是一種選擇。但需要注意的是,如果再次開啓Supertech服務,那麼由於需要經過一段監視記錄用户使用習慣的過程,因此需要等待較長一段時間後,Superfetch技術才能重新為系統帶來明顯的提速效果。
打開2008的Superfetch
首先:SuperFetch的目的是提升前台進程的性能,預取前台進程的內容。而Windows Server 2008主要目的是用作服務器,幾乎很少有前台進程,所以沒有采用SuperFetch技術。然而可以打開:
打開註冊表編輯器找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters 這個註冊表項
新建 DWORD 項 名稱為 EnablePrefetcher 數值為 3
新建 DWORD 項 名稱為 EnableSuperfetch 數值為 3
打開 服務 ,將SuperFetch設為 自動 可以立刻啓動成功

SuperFetchWindows 7

SuperFetchSuperfetch

並不是一個新的技術,在Vista時代就已經開始採用,不過鑑於用過Vista的人數比較少,而XP時代的各種電腦技巧始終還深入人心,所以很多人都在疑問為何Windows 7內存佔用如此之大。
Superfetch內存管理機制會將用户可能使用的應用程序頁面利用內存可用空間進行預加載;儘可能地避免系統發生從硬盤的頁面調用;讓應用程序最快速度開啓;不會由於計算機長時間閒置而使突然使用變得響應遲緩;在退出大型應用程序後會主動將之前被迫轉移到虛擬內存中的頁面重新調入內存當中。這樣看起來似乎專業了點,所以接着往下看,會很好地對這些特點進行理解。

SuperFetch為何第一次啓動程序會感覺很慢

相信大家都有過類似的經歷。當我開機後,第一次運行一個程序,就比如説是Word吧,可能需要5秒才能啓動。當我關閉後再開,也許只用2秒。如果我不關閉,直接打開另外一個Word文件,那就更快了。

SuperFetch這是什麼原因造成的呢

當我們開機後,工作集裏面沒有Word這個員工(頁面),他還在家(硬盤)裏面。於是當我召喚他的時候,它才從家走到辦公室(工作集)。這樣的過程就叫做硬調頁了,當然需要的時間長。而當我們關閉了Word時候,他就被派往大廈的另一房間,我卻馬上再次召喚他,這時,另一個房間內的數據還沒被清零,他便不用從家裏走來,而是直接從數據結構裏面引入就可以了。在不關閉這個程序Word的情況下,他也不用為其他程序讓路的時候,它還存在於辦公室(工作集)裏面,召喚他的時候就會更快。這樣的無需從硬盤中重新調用數據,而是將數據結構中的頁面重新掛載到工作集中的過程,便叫做軟調頁了。大家都知道內存速度遠遠快於硬盤,所以軟調頁的使用就是第二次運行程序變得很快的原因了。

SuperFetchWindows 7內存佔用大的原因

至2014年,我們知道了當內存中有所需程序頁面的時候會使程序啓動變得更快。而Windows 7中的Superfetch已經具有了學習的功能,自從第一次使用Windows 7時,Superfetch就開始記錄我們的使用習慣,將我們經常使用的程序的頁面在開機後進行提前加載,那麼當我們第一次開啓程序的時候便可以獲得像第二次開啓一樣的速度了。所以這些預加載的頁面就會使得我們的內存佔用變多。簡單地説就是讓所有程序操作在內存中進行,避免使用硬盤硬調頁空間,這也就是為 何感覺Windows 7佔用很大內存的原因。

SuperFetch查看預加載的內存

而在XP時代,也許你也有過類似的經歷:當開始使用一些程序後,由於有事便離開了。回來的時候卻發現系統響應十分緩慢,特別糟糕。這是由於XP的內存管理模式效率非常低下。
當我們離開後,程序都處於不使用狀態。這時系統的一些後台程序,如磁盤整理、殺毒軟件等程序就會全速運行,導致我們使用的一些程序頁面不得不被擠到了硬盤虛擬內存中。可是當這些後台程序完成任務後,XP系統並不會把之前被擠到虛擬內存的頁面導回內存裏。於是在再次使用電腦時,系統才會手忙腳亂的進行臨時調配,甚至是硬調頁。導致程序響應極其遲緩。所以看上去XP的空閒內存很多,事實上都沒起什麼太大的作用。

SuperFetch使用建議

任何人都希望通過優化的手段讓自己的電腦運行速度達到最理想的狀態,而內存又是影響電腦運行速度非常重要的因素,我們在瞭解了Windows 7的內存管理機制,再來介紹哪些方法可以給系統加速
1、多使用休眠和睡眠
由於SuperFetch要在開機後進行預加載,所以建議大家不要關機。儘量使用休眠或睡眠,這樣SuperFetch的預加載內容就會保留。從而提高速度和效率。
2、使用ReadyBoost
很多從XP升上來的用户由於系統的內存不夠大,所以無法全面的發揮SuperFetch的功能。我們可以使用ReadyBoost功能來幫我們解決這個難題。
只要符合條件的閃存都可以加速我們的系統。ReadyBoost功能是利用閃存的容量作為SuperFetch預加載頁面的儲存空間。但由於微軟採用了特殊的算法,所以並不會影響閃存的壽命。還有,用於ReadyBoost的閃存最好為物理內存大小1~2.5倍。如果系統物理內存足夠大的話,就沒有必要使用ReadyBoost了。右鍵點擊U盤盤符選擇屬性,切換到readyboost一欄,速度達到標準的U盤都可以開啓這個功能。

SuperFetchWindows8

Windows8/8.1默認開啓Superfetch,對於平常使用的程序響應速度會有較明顯的加速作用,特別當大內存配置時。由於win8/8.1用户普遍發現開機後有短暫發生磁盤佔用100%的情況,被認為可能是開機後短時間內系統響應緩慢的誘因之一。

SuperFetch使用建議

Windows8 要設置好 Superfetch 服務

SuperFetch方法

控制面板 – 管理工具 – 服務 – Superfetch – 啓動類型 – 自動(延遲啓動)(默認啓動類型為自動無延遲),可以避免剛啓動好Win8對硬盤的頻繁訪問,而不建議直接禁用該服務。

SuperFetchWindows10

在Windows 10 1809以後,此服務名已改為SysMain。