引用:
bonjacky寫到:
感謝 killer00 兄所做的補充及介紹
我不用 FAT16 而用 FAT32 主要就是為了檔案數量的限制
因為 QSoft RamDisk 製作 ramdisk 時,不會自動建立 temp 目錄
因此我的 temp 都設定成 ramdisk 的根目錄
如果設成 fat16 的話,很容易達到檔案數量的上限
所以我才改用 FAT32
而 NTFS 的話,它的機制太複雜了,不像 FAT/FAT32 那麼簡單,感覺起來對 CPU 的 LOADING 應該較重
不過 killer00 兄的測試結果,FAT 或 NTFS 的效能在不壓縮的情況下,似乎沒什麼差別
那樣的話,FAT/NTFS 其實也沒什麼好記較了
關於 Temp 目錄的問題很好解決,SuperSpeed RamDisk Plus 有提供開機時自動隨 RamDisk 一起建立 Temp 目錄的功能(無需使用 RamDisk Image,這是另一個我愛用的理由~自由度高);如果是 QSoft RamDisk,若開得不是很大(幾十 MB),可以利用"Load RamDisk content from image at driver start ",再搭配手動儲存 RamDisk Image 的方式,把空的 Temp 目錄存於 RamDisk Image 中,如此開機時能有空的 RamDisk(含 Temp 目錄),關機時也不會將資料存回硬碟上。(如果 RamDisk 開太大,可能會耽誤到開機)
我這測試只有單純的比較存取,其它像搜尋、容錯…等都不會在這些地方顯示。
比如搜尋的演算法,NTFS 是用 B+ Tree (Balance m-ary Search Tree with Linked Leaf Node),其演算時間是O(logN),而 FAT 是用循序搜尋,其演算時間的O(N),如果 N 是 100,那 FAT 最差的情況要到第 100 次才能找到資料,而 NTFS 最差則只要到第 7 次就一定能找到資料。
比如叢集的問題,我用 RamDisk 模擬,NTFS 未超過 512 MB 時,其叢集大小都為 1KB,但 FAT 則是依照容量而改變,所以在讀寫資料時,NTFS 的 CPU 使用率會比較高。
比如容錯的問題,因為 FAT 沒有容錯,故消耗 CPU 效能的情況會比較低,而 NTFS 因具備容錯,使得 CPU 及 硬碟需付出比 FAT 更多資源在其上。
這些都是我提供的圖片所無法表達的,而且根據使用的對象而會有變化。就拿 PageFile 來說,如果設定的容量不大(如:200MB),則 NTFS 與 FAT 比較起來就沒有優勢,容量小意味著搜尋演算法的優勢變得不明顯(對於 CPU 來說,找 100 次所花的時間與找 7 次所花的時間相差有限),容錯意味著可用空間變小、CPU 使用率上升。
但如果設定 RamDisk 容量大於 512MB,且裡面放的資料需要容錯或者多讀少寫,用 NTFS 會優於 FAT(如果 FAT 找資料最差要 1 百萬次才找到,那 NTFS 最差也只要 20 次就能找到),在找資料所花費的時間、消耗系統的資源都比 FAT 要來得少(別忘了,搜尋時間變長也表示把持部份的資源的時間也變長,同時也意味著優先權比搜尋低的工作拿不到這些資源,而優先權比搜尋高的工作會搶奪這些資源,所以一定有一方會因此被耽誤,也就是比較沒效率)。
而且,因為容量超過 512MB,叢集大小也由 1KB 提升至 4KB,需要 CPU 付出的功率也不會等比上升。