changyic wrote:
相關資訊如下:
系統:WIN7 x64 旗艦版
SSD:M4 128GB
HD:Seagate 2TB
RAM:金士頓 16G

用Softperfect 設 10G 做RamDisk (R:碟,NTFS)
用ImDisk 封裝 Crysis 及 NFS-Hot Pursuit兩套遊戲為img (分別為7.xG及8.xG)
要玩遊戲時,將img copy到 R:碟,並掛載為 G:碟後執行
執行時,一切正常,但就是沒有「順閃」的感覺........(恕刪)


Crysis 2 是 7GB
Crysis 3 是 14GB

你有壓縮 NTFS 嗎?有壓縮的話,速度會比較慢


幾點說明:

● 至少要留 2~4GB 左右的記憶體給遊戲,尤其重量級大型遊戲



↑ 剩餘的可用記憶體,至少要 2~4GB 以上

因為剩餘記憶體若不足以運行軟體,windows 會使用「虛擬記憶體」。

虛擬記憶體:使用 硬碟/SSD 空間,當記憶體 RAM 用,會嚴重拖慢速度。


● 把 TEMP、虛擬記憶體(SWAP)也設到 RAMDisk



↑ 系統變數,把4個 TEMP、TMP 項目,都設到 RAMDisk



↑ 虛擬記憶體,手動管理

全部磁碟設:無

僅 RAMDisk 設 512~2048 MB


經實測,XP/WIN7 不論記憶體有多大,都會去使用「虛擬記憶體」。

那個是不能關閉的,即使關閉,windows 也會偷偷在 C:\ 底下開一個。

所以最好是指定到 RAMDisk,大小以 512~2048 動態分配佳。

起始會是 512MB,若不夠用它會自己加,上限 2048MB。


● 經過 imdisk 虛擬的磁碟,虛擬層會減慢速度,但仍是比 SSD 快



↑ 這是實體 RAMDisk 的速度(算慢,看過網友跑 11GB/s 的)



↑ 這是把 *.img、*.game 映像檔,放在 RAMDisk 中,然後掛載為虛擬磁碟的速度。


可以明顯看到,經過「虛擬層」,IO 速度降為 1/3 左右.....

因此可驗證,虛擬化,是會拖慢速度的。

但仍是比 SSD 和 硬碟 快就是了,尤其 4K 小檔的部份,快非常多。


Q.既然 imdisk 虛擬磁碟,會減慢速度,為何還要封裝成映像檔掛載?

A.因為封裝成一個大檔案,拷貝到 RAMDisk 會比較方便,管理收藏檔案也比較方便。

以方便為前提,「虛擬層」減慢速度的代價,這是可以接受的。


或者可以試試:不要用映像檔掛載,直接把整個遊戲目錄放 RAMDisk,用實體 RAMDisk 速度去跑。

這樣的話,IO 速度會有提昇,但差不了多少就是了,因為換關讀地圖檔,那個地圖檔不可能有超過 1GB 那麼大。

1GB/s 是 1秒。3GB/s 也是 1秒,理論上感覺不出來。


● I/O 速度如果夠快,整體效能問題還是會回到最基本的:CPU 速度。

如果儲存裝置 I/O 讀寫,測出來都在 1~3GB/s 的讀寫速度了。

即便重量級遊戲,每一關的地圖檔、音效檔、資料總和,也不會超過 1GB。

那麼換關還不能「順閃」,問題肯定就出在:CPU 處理跟不上,或 GPU 處理跟不上。

註:有些遊戲的過場動畫,那個能按 Esc 跳過不看。只要讀取完畢了,按下去就有效了。


電腦,從「儲存裝置」(SSD、硬碟、RAMDisk)讀入資料。

需要經過 CPU 處理為數據,和經過 GPU 處理為畫面。

今日的電腦都非常快,往往都是卡在 I/O 讀取的部分。這個前提是:使用 硬碟或 SSD。

因為 硬碟 和 SSD 速度跟不上 CPU 處理速度,所以我們會覺得效能關鍵卡在 I/O。


但假設 I/O 變超級快,有 1GB/s 以上的速度,那麼效能的基本關鍵,仍是會回到最基本的:CPU 跟不上,或者顯卡處理太慢。
這串好精彩

本人目前使用24G實体RAM
現在有用RAMDISK和FancyCache For Volume
之前用QsoftRAMdisk 會發生有時在該RAMDISK存太多檔案關機會當機
現在改用Primo Ramdisk Ultimate Edition 一切正常使用中
這個可以設動態12G不回存放暫存、BT下載、其他軟体有的沒的暫存檔
有用到才佔到 沒用到就沒佔到
1個1G放一些綠色軟体、瀏覽器等做儲存載入的動作(設太大相對時間會更久)
事實上那些綠色軟体用個1G也夠放了
要說明一下 Primo Ramdisk Ultimate Edition
有個延時載入的功能 開機並不會拖慢到那裡去
本人WIN7X64 開機時間和之前用QsoftRAMdisk(這個我沒設回存)
幾乎沒啥差別 而關機是會慢點 比沒裝前多個10秒左右吧
但真的要在乎這10秒嗎?

現在本人遊戲只有玩LOL SD鋼彈等 以前會整個放進去
不管再怎麼讀取第一也要等其他人 現在改用FancyCache
一樣還是讀取第一 所以就沒再整個放進去了

現在改用來BT下載
看上面有提到用批次檔等
但現在也有BT軟体可以支援到該功能
uTorrent

可以設定下載到E糟(我的RMADISK)
載完後再移到X糟(我的HDD)
要是下載超過12G我就建立限定下載數量
載完移到X糟 E糟淨空 再載下一個
至於別人說的下載32G啥藍光之類…
我只能說我目前沒載那麼大的東西
看到也不想載 因為不好備份到光碟
重點 二邊畫質差別我看不出來

不過若真要載單一3xG的檔案 也可以用FancyCache
該軟體會把下載的資料先存到記憶體(容量可設定)
直到達到設定延遲寫入的時間
(讓資料放到記憶體的時間 設越久放越久)
或該記憶體容量滿額
才會再將該記憶體內的資料存入硬碟內
都很好保護ssd或hdd的寫入壽命
只是缺點是容量一設定就跟ramdisk一樣佔用
所以我近期才改用Primo Ramdisk Ultimate Edition
比較不怕佔用到沒使用時浪費到記憶体的容量




ryupp wrote:
這串好精彩

本人目...(恕刪)


載完後再移到X糟(我的HDD)
要是下載超過12G我就建立限定下載數量
載完移到X糟 E糟淨空 再載下一個
至於別人說的下載32G啥藍光之類…
我只能說我目前沒載那麼大的東西
看到也不想載 因為不好備份到光碟
重點 二邊畫質差別我看不出來


完全讚同大大的說法~

fedora wrote:
Crysis 2 是...(恕刪)


之前也將環境變數設定到RAMDisk
可是卻發現有些Windows更新會失敗
要改回預設值才能完成更新
請問你會發生這種情況嗎? 該如何解決?

謝謝解答

Cloud2005 wrote:
之前也將環境變數設定到RAMDisk
可是卻發現有些Windows更新會失敗
要改回預設值才能完成更新
請問你會發生這種情況嗎? 該如何解決?.(恕刪)


沒遇過,可以更新


失敗可能是 TEMP 空間不足。

有些程式或軟體,安裝時會先將"安裝程式"解壓縮到 TEMP 暫存目錄

TEMP 空間若不足,軟體會無法安裝或更新

比方說:
RAMDisk 塞滿滿,剩餘空間不到 100MB 可以用。

那要安裝一個好幾百 MB 的軟體,它需要先解壓縮到 TEMP 才能安裝,就會無法安裝。因為解壓縮不了,目的空間不足。

大部分的安裝軟體,都是 *.exe、*.msi 這類型壓縮封裝的檔案,是需要先解壓縮後才能安裝的。而大部分的安裝軟體,預設都是解壓到 TEMP。


若要把 TEMP 設到 RAMDisk

RAMDisk 磁碟(例如 R:),建議平常至少留 1GB 的空間給 TEMP 使用。

假如記憶體很小,RAMDisk 也開很小,剩餘空間不敷使用,真的無法保留 1GB 空間。

也可以要安裝大型軟體,更新系統的時候,先把 RAMDisk 清出一些空間,把映像檔什麼的卸載掉+刪除,清出空間,讓 TEMP 有空間可以放東西,再去安裝或更新。


TEMP 平常使用量不會超過 50MB,是安裝軟體(尤其大型軟體),才會有臨時性需要大空間的需求。

所以如果能記住這一點,不保留 1GB 空間也是 OK

只是要安裝軟體的時候,若安裝失敗,就要直覺想到:是不是 TEMP 空間不足?要去清一些空間.....

這種用法,比較偏向手動,沒有自動化。適合平常就有在掌握電腦情況的玩家,不適合給電腦新手使用。


註:
有些多媒體剪輯、編輯軟體,會把工作暫存檔放在 TEMP,那個對空間的需求也很大。

若 TEMP 放 RAMDisk,然後使用這類影片編輯軟體時有錯誤,也是 TEMP 空間不夠大造成的。


************************************

撇除 TEMP 不談,「虛擬記憶體」建議要設到 RAMDisk 去,影響整體效能很巨大。

TEMP 對於效能的影響還沒有那麼大。設到 RAMDisk 是更爽,且不用定期清理,關機/重開機 就消失了省的清理。但不設其實影響也不大。

然而 「虛擬記憶體」放硬碟 和 放 RAMDisk,兩者系統順暢度是天差地別的。


一般來說是記憶體太少才會設虛擬記憶體,
既然記憶體多到能設 RAMDisk 那為什麼不把虛擬記憶體關閉,不是更直接。

何必又要從記憶體裡切 RAMDisk 來放虛擬記憶體...?這完全沒有邏輯阿。

POLZ wrote:
何必又要從記憶體裡切 RAMDisk 來放虛擬記憶體...?這完全沒有邏輯阿。...(恕刪)


理論上是這樣沒錯

但實際上,這個要從 WINDOWS 的特性說起

windows 的 pagefile.sys 並非只是單純的「虛擬記憶體,SWAP」用途。


比方說:

1.
windows 有一個功能:會自動把記憶體中沒用到的 *.dll 清除掉。釋放記憶體空間。這個功能可以在機碼中設定開啟或關閉。

很多的記憶體加速軟體,都是指這個功能。其實這功能 windows 本身就有內建,記憶體加速軟體只是提供按鈕可以按了立刻清除。

但實際上,這個所謂的清除, *.dll 並不是被從 RAM 中清除掉,而是被移動到 pagefile.sys....


2.windows 的錯誤傾印,需要用到 pagefile.sys。

3. windows 系統方面可能還有其它的....這個研究不深,我只知道上面那兩個

此外有些軟體也會去用到 pagefile.sys

***************************************************


總之,windows 是無法完全關閉 pagefile.sys 的。

它雖有提供那個介面,也可以選關閉。不過那個只是關心酸的。


可以做個實驗:

1.把虛擬記憶體全部關閉,把 pagefile.sys 砍了。

2.電腦用幾個小時後,去看 c:\ 底下有沒有冒出 papefile.sys(系統隱藏檔,檔案總管選項要顯示系統隱藏檔才看的到)。

會很驚訝的發現:咦~不是關閉了嗎,怎麼還冒出來。

那個就是 windows 會私底下偷偷開啟的證據。


即便完全關閉,widnows 也是會偷偷開啟放在硬碟,且建立的那瞬間,電腦會短暫沒有回應,會卡頓一下。

有完全關閉「虛擬記憶體」的人,請回憶一下,電腦是否偶而會短暫中風,沒有反應?那個就是 windows 在背景偷偷建立 pagefile.sys 的一瞬間。


既然 windows 死活都要去用 pagefile.sys,禁止不了。算是一種歷史包袱吧,為了相容以前的舊軟體,MS 不得不這麼做。

那乾脆就指定一個小容量的,動態分配的,放在 RAMDisk。




上圖:事實上,WIN7 是不允許完全關閉的,最小也要 16MB

完全關閉,它不給關,會跳回自動管理。

VISTA 也有這種限制。

好像 XP 還是 win 2000 才能完全關閉,忘記了。


**********************************

關於「虛擬記憶體」大小:

WIN7 建議至少要 512MB。

可以設 512~2048 動態增加,起始佔用 512MB。

XP 的話,256MB 可能夠用。


WIN7 我試過只開 256MB ,電腦用久會有一種錯誤:
一直跳 C++ Runtime error 的視窗炸彈

網路爬文說啥 C++ Runtime 損壞,或是中病毒啥的

病毒是確定沒有,而 C++ Runtime 重裝幾十遍也沒用, 2003、2005、2008、2010 ,32位元 64位元,全重裝了,就是沒有用,照樣跳錯誤。

後來發現是「虛擬記憶體」設太小造成的

改設成 512~2048,就沒跳那個錯誤了。

所以 WIN7 建議至少 512MB 比較保險。

256MB 以下的話,實證過是不行的。


如果也有被 C++ Runtime error 困擾的網友,可以參考看看

那個很有可能是「虛擬記憶體」設太小造成的。
GA-Z77-D3H
E3-1230 V2
GV-R775OC-2GI
32G RAM(分割16G做RAMDISK)
WIN7 X64

轉檔軟體 TMPGEnc 4.0 XPress
輸入的檔案格式 701MB wmv(高清影片)
輸出的檔案格式 1.37GB MPG(要燒成DVD影片的標準檔格式)






把要轉檔的輸入檔COPY到RAMDISK, TMPGEnc 4.0 XPress的暫存檔設定到RAMDISK,輸出檔設定到RAMDISK,
這樣轉一部701MB wmv(高清影片)變成DVD影片的標準檔格式MPG,總共時間是6分2秒.
fedora wrote:
理論上是這樣沒錯
但實際上,這個要從 WINDOWS 的特性說起
windows 的 pagefile.sys 並非只是單純的「虛擬記憶體,SWAP」用途。

比方說:
1.
windows 有一個功能:會自動把記憶體中沒用到的 *.dll 清除掉。釋放記憶體空間。這個功能可以在機碼中設定開啟或關閉。
很多的記憶體加速軟體,都是指這個功能。其實這功能 windows 本身就有內建,記憶體加速軟體只是提供按鈕可以按了立刻清除。
但實際上,這個所謂的清除, *.dll 並不是被從 RAM 中清除掉,而是被移動到 pagefile.sys....
2.windows 的錯誤傾印,需要用到 pagefile.sys。
3. windows 系統方面可能還有其它的....這個研究不深,我只知道上面那兩個
此外有些軟體也會去用到 pagefile.sys

***************************************************

總之,windows 是無法完全關閉 pagefile.sys 的。
它雖有提供那個介面,也可以選關閉。不過那個只是關心酸的。

可以做個實驗:
1.把虛擬記憶體全部關閉,把 pagefile.sys 砍了。
2.電腦用幾個小時後,去看 c:\ 底下有沒有冒出 papefile.sys(系統隱藏檔,檔案總管選項要顯示系統隱藏檔才看的到)。
會很驚訝的發現:咦~不是關閉了嗎,怎麼還冒出來。
那個就是 windows 會私底下偷偷開啟的證據。
即便完全關閉,widnows 也是會偷偷開啟放在硬碟,且建立的那瞬間,電腦會短暫沒有回應,會卡頓一下。
有完全關閉「虛擬記憶體」的人,請回憶一下,電腦是否偶而會短暫中風,沒有反應?那個就是 windows 在背景偷偷建立 pagefile.sys 的一瞬間。
既然 windows 死活都要去用 pagefile.sys,禁止不了。算是一種歷史包袱吧,為了相容以前的舊軟體,MS 不得不這麼做。




個人仔細觀察了很久.覺得您上述並不完全正確...

先和您談談[Page Fault] <=這定義應該不需要我來細說!

Page Fault的值愈大...
表示從硬碟swap,pagefile.sys等地方.待分配進入實體記憶體.分配位址.然後被運用的數據量愈大...

下面這張是我電腦(規格Intel-i7 2600k ,32GB RAM ,10+顆HDD and pagefile.sys設為0)
閒閒沒事的圖...


圖中可以看到我的記憶體大約佔用6.5GB/32GB而已...
而程式大概只有Emule.防毒軟體在跑...所以Page Fault低得很...

接下來我開啟Bitcomet(嘗試下載熱門檔一段時間)...


可以看到Cfos滿載.Page Faulted數量也大增...
同時記憶體中的Bitcomet也大幅佔用...

細看一點...


Bitcomet程式
佔用工作集(working Set)約在1269372K左右
佔用私人區(Private Byte)約在1213908K左右
另外還佔用了認可大小1317232k左右

從第三方程式System Explorer看...


所有IO(Read,Write,Others)當然都被Bitcomet佔滿...
Page Faulted大幅上升至14391+...
可以觀察一下Used RAM/Swap部分...
上述Bitcomet佔用了認可大小1317232k部分.其實被標示為swap 20% 1281MB

也就是說.即使沒設pagefile.sys
Win7 VMM(Virtual Memory Manager)虛擬記憶體管理...
還是會使用Page mapping方式去處理程式在記憶體方面運用!

有句話您應是說對了...
[算是一種歷史包袱吧,為了相容以前的舊軟體,MS 不得不這麼做。]

Win7已與XP或Me等不同...
因為所有程式的記憶體需求都透過虛擬記憶體管理來給出(而不是讓程式自己抓用記憶體)...
所以Win7已不一定需要實體swap.當然條件是你的空閒記憶體要夠充足...

如果看看上述...我的Page Faulted上升到14391+...
那我的C磁碟一定猛讀寫不停...
事實上.當時我的磁碟讀寫.如下圖...


仔細看的話.Bitcomet確實讀寫總計高達15430697B/秒左右...
而下半部可以看到.主要磁碟讀寫在N碟(我的Bitcomet碟) 0.18左右磁碟佇列..
而C碟只有0.01左右磁碟佇列...

而我的C碟底下有沒自動生出pagefile.sys?...看看囉...


完全沒有!!

這我觀察很久了.因我C碟大小只有36GB而已.空間非常有限.所以斤斤計較..

其實從上面那張磁碟讀寫圖也覺察得出來...
如果控制台已設成無分頁檔.Win7並不會在C磁碟上偷加pagefile.sys...
當不夠用時.Win7會跳出虛擬記憶體已不足或用完警訊才是...
(我自己也遇過)

Win7的VMM虛擬記憶體管理能力是強過Vista,XP很多很多的...
以前記憶體較為不足年代.XP,Vista確實會暗中自動增加.造出頁面交換檔.而延續一些誤解...

但Win7已經進入全部都是虛擬化管理.作業系統掌管權力甚大...
Win7可以虛擬給程式所需要的任何記憶體方式(延伸.頁面.dll共享.交換集區都行)...
加上時代演進.記憶體容量已大增...
只要你的記憶體夠大.最重要空閒記憶體空間要夠充足!!!
那麼Win7自然而然就會去運用空閒記憶體來做這些類似swap的動作.不再動到硬碟...

上面我的所有貼圖.都在闡述這些...

雖然Microsoft官方仍不建議關掉Pagefile.sys
(主要與memory dump紀錄.或程式向下相容有關)...
但記憶體充足狀態下.Win7 OS確實有能力完全掌控記憶體的分配與運用.而不去動用磁碟...

個人就您這篇討論裡面所有發言來觀察...
您是位Ramdsk愛好者...
所以不和您談讓記憶體空閒著也是一種win7記憶體的運用方式...
僅就pagefile.sys部分與你提出討論...

以上!


參考文章 :

The Basics of Page Faults

Working Set,Private Bytes和Virtual Bytes

谈大容量内存的各种使用方案对磁盘效率影响

與你聊聊大容量記憶體的使用效率^^


Memory Management


The Virtual Memory Manager

The Virtual-Memory Manager in Windows NT
紀錄一下~這一串很受用!

不過之前把ramdisk取消後,word會依直無法儲存檔案~說環境變數出錯之類的錯誤訊息

後來去google,把office的機碼改回預設才正常~
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 41)

今日熱門文章 網友點擊推薦!