為了電腦加速,很多人是無所不用其極花大錢,所以切個4GB RAM來加速是算什麼,相比加速效果簡直太划算。
像我電腦都48GB RAM了,它還不是照樣吃 Pagefile 分頁檔,而且還吃不少。並非記憶體用盡的關係,我有擺一個監控軟體在桌面看系統資源,RAM從來就沒用盡過,它也是照樣吃。
不信的人,可以去下個 AIDA64 免安裝綠色版(免費軟體),看下自己電腦就知了,看吃多少分頁檔,眼見為憑,自己電腦,自己眼睛看到,不會有假。哪怕說已經關掉也是照樣吃,因為windows會自動偷開,砍了也沒用的,它一樣自動偷開。
既然win就是改不了吃分頁檔的習慣(它設計如此,天生的),就像狗改不了吃屎,那丟到 RamDisk 完美解決。

終極加速方案。
不信的人可以試用看看,把 分頁檔丟到 RamDisk ,電腦整體順暢度,絕對比放在SSD還快,是有感的加速。試試不用錢,不滿意移除即可,對電腦絲毫無損。
並不是預設優先用掉實體記憶體的.
不管實體記憶體有多少,
PageFiles.sys都會出現,
如果關掉PageFiles.sys,還會出現另一個替代檔案(檔名忘了,作用類似).
簡單的優化方法是不要讓windows自動管理虛擬記憶體大小,
可以指定最小值(16MB)到最大值(你該槽最大空間的90%-已經用掉的空間).
為什麼要降低最小值,因為windows用虛擬記憶體跟實體記憶體是有某個比例的,
你降低虛擬記憶體的大小,它跟實體記憶體的比例就變小,放到虛擬記憶體的比例就會降低.
這樣實體記憶體使用的比例就會變高,
實體記憶體使用的比例越來越高,windows就會自動繼續增加虛擬記憶體的大小.
因為windows的設計是盡可能保留某個比例的記憶體應付緊急情況.
例如windows自動幫你交換實體記憶體跟虛擬記憶體內的資料的時候是有時間的,
windows所保留的可用記憶體就是為了讓交換過程你開了新程式/新檔案的時候先用的.
所以只要記憶體的使用量有變化,虛擬記憶體內的資料是一直持續跟實體交換的.
至於交換什麼,windows會看你的哪個程式的記憶體讀寫量來分配,
如果你的程式記憶體使用量很穩,或是程式本體讀寫資料的量很低,windows就會優先交換其它用量浮動大的程式.
至於虛擬記憶體讀寫SSD壽命是否會減少?
我的經驗是過熱跟用完空間的當機比較多,用到壞掉還沒出現過.
所以盡量避免用完SSD空間,並且確保SSD溫度不要變高,比關心讀寫壽命重要.
為什麼會特別指出SSD空間用完?因為你可能沒注意SSD是否用滿了,
尤其虛擬記憶體上限值很大的時候,我就是虛擬記憶體值設很大,導致PageFiles.sys吃完整個SSD所以就當機了.
這個我也是找問題很久才發現,用了很多監測軟體並用log檔案看當機前有什麼發生.
當你的實體記憶體很大,"總是"用不完,那麼ramdisk的作法是蠻適合拿去放虛擬記憶體的.
設多少容量?就是你"剛好用不完"的大小的(80%).
因為設更大,windows就會增加虛擬記憶體檔案的大小,交換讀寫量反而會上升.
ramdisk的軟體會影響一些細節,例如我都用綿羊牌ramdisk,它安裝好並初始化之後,其實它出現在windows的時間是比較慢的.
所以設定好出現ramdisk後,你設定好這個槽有虛擬記憶體檔案,
但重開機會發現,這個ramdisk槽沒有PageFiles.sys,而設定那邊這槽的設定也不見了,
所以要用bat的方式寫一個命令去設定這個ramdisk槽的虛擬記憶體大小,
讓windows進桌面的時候執行這個bat或是你每次都點兩下,並檢查PageFiles.sys是否有出現.
這樣才能確保你的ramdisk有設定成功.
ramdisk槽的虛擬記憶體最小值可以直接設最大相同.
如果你很擔心SSD讀寫壽命,
那你就要很清楚什麼東西是臨時讀寫並且沒有存檔必要,讀寫量又很大的.
你可以把這類檔案的路徑設定到ramdisk槽,但須要注意使用量.
舉例,windows有4個臨時資料夾路徑,這個可以看"系統變數"跟"使用者變數",
裡面有temp跟tmp兩個變數,並且有路徑,這個路徑點兩下就可以改,改完重開機生效.
你可以把這4個變數都設到ramdisk槽,
一樣這個要注意你的ramdisk槽真正出現的時間很早,不然這會出問或是當機.
因為這4個路徑在環境啟動過程就會有程式使用並讀寫.
而且這招不像虛擬記憶體可以進桌面改就能生效.
唯一可以改的機會是在windows啟動好且登入桌面前執行bat檔,而且只能改"使用者變數"路徑.
因為"系統變數"的temp/tmp值已經被使用,改了可能會出問題.
而"使用者變數"的temp/tmp路徑是登入時啟用,而且優先於"系統變數",
所以改"使用者變數"的temp/tmp路徑就可以達成目標了.
再舉例,有很多程式都會產生使用過程的LOG檔案(或臨時檔案),但這些檔案又不重要,卻會持續讀寫,
那這些檔案記想辦法設路徑讓它放到ramdisk槽,
如果這些log(或臨時)檔想份,就寫個定時備份的bat或是弄個定時備份的軟體去跑就好,
這樣,本來每分中都有讀寫的log檔,變成每N分鐘才存檔一次.
如果備份到SSD,那這部分就是讀寫只剩1/N的量,
如果備份到非SSD槽,那就是保下SSD讀寫壽命了.
再比較linux系統的虛擬記憶體檔案,
linux是有使用比例值可以設定的,但是設最低的0還是會使用虛擬記憶體喔,只是比例非常非常低.
linux可以選擇不使用虛擬記憶體(不swapon,fstab不掛sw),這"保證不使用"虛擬記體.
linux的核心/檔案系統比較有在改進,所以有很多黑科技可以提高實體/虛擬記憶體的使用效率.
例如以前linux的虛擬記憶體檔案跟windows的一樣需要連續空間並提早占用填入空值,
但現在已經有超過三種的"透明壓縮"選項可以讓虛擬記憶體檔案"看起來是連續的空值檔案"實際上卻是體積卻是真實使用的體積.讀寫量也是看真實非空的量.
而且這不用另外裝軟體,這是linux核心本來就有的壓縮支援選項.
為了避免這討論串某人講話很嗆打槍我這個技術一定不穩不要用最穩,
所以我舉例android,android幾乎所有的虛擬記憶體管理,都是啟用這類壓縮的.
某些型號甚至實體儲存檔案系統都有開.
apple的我不確定有沒有這個,因為我是開發windows/linux軟體的,不是開發apple軟體的.
如果要打槍這個"透明壓縮"相關功能,
那就把你自己的android手機root進去把這個關掉吧,看性能會掉多少.看是不是更穩(笑奔).
那,windows就沒辦法"完全"避免虛擬記憶體消耗SSD壽命了嗎?
其實在特定的條件式可以達成的,
其中一個方法是,先安裝linux,在linux裡面安裝虛擬電腦軟體,用這這個軟體開一台虛擬電腦裝windows,並指定這個虛擬電腦軟體跟虛擬的電腦優先使用實體記憶體,
這個很複雜,但是做得到,我也做到了.
linux可以裝顯卡,但顯卡驅動跟windows比很糟糕,所以這個做法需要你有內顯或是雙顯卡,
把性能好的顯卡不裝linux驅動也不啟用,並在linux內pass給虛擬電腦軟體管理這個PCIE設備,
並且虛擬電腦軟體設定這個PCIE設備給wondows虛擬電腦使用與接管.
這樣你linux的虛擬windows才能抓到真實的高性能顯卡,安裝驅動,打電動打遊戲.
而且電腦後面顯卡1(內顯或低性能的顯卡)跟顯卡2(高性能)的輸出都要接到螢幕喔.
所以這個要求螢幕要有兩個輸入才能,
linux開機過程會用顯卡1輸出螢幕,直到你開windows虛擬機.
虛擬windows開機中,顯卡2會開始送出訊號,
如果你不會用linux切斷顯卡1的訊號,
那你就手動按螢幕切到顯卡2.
工作到很想分心所以寫一堆,樓主參考看看
內文搜尋

X