Windows

Windows 上的 Ramdisk 與內置 IO 記憶體

  • April 19, 2017

我試圖了解 Windows 上的內置 IO 記憶體。如果應用程序寫入文件,然後多次讀取/寫入文件,那麼 IO 記憶體似乎應該允許這種情況發生的速度與系統記憶體允許的速度一樣快?那麼Windows會以非阻塞的方式逐漸將更改寫回物理磁碟嗎?

但是,我在此站點上看到了其他與 ramdisk 相關的問題,使用者通過將一部分系統記憶體安裝為磁碟驅動器可以看到顯著的收益。如果 IO 記憶體像我上面描述的那樣工作,那為什麼還要這樣做呢?Windows是否有設置來調整這個?

這些引出了我真正的問題:使用 ramdisk 並手動將更改同步回物理磁碟是否有意義,即使是幾分鐘或幾小時後?

編輯: 在 Evan Anderson 的回復中更正了 DMA 與 IO 記憶體的誤解。

我認為您將直接記憶體訪問(DMA,一種硬體功能)的功能與 Windows 中的記憶體管理器提供的功能混淆了。

DMA 是一種允許 IO 設備直接訪問系統記憶體而無需 CPU 干預的方法。應用程序不使用 DMA——設備驅動程序使用。應用程序遠離 DMA 過程。

應用程序的讀/寫請求在到達 IO 設備的過程中會經過各種層級。記憶體管理器將通過系統記憶體處理大量的請求記憶體。IO設備本身的設備驅動也可以實現記憶體。

如果您的應用程序不能與記憶體管理器很好地互動,但可以使用 RAM 磁碟(您可以通過基準測試來確定),那麼請務必使用 RAM 磁碟。對我來說,圍繞各種技術的主觀“好”在學術上跳舞沒有什麼意義。在生產部署方面,使用給定技術是否有“點”的關鍵應該基於盡可能接近真實世界條件的基準測試。當您對作業系統、驅動程序堆棧、應用程式碼等進行更改時,您應該重新進行基準測試,因為您的舊假設可能不再適用。

引用自:https://serverfault.com/questions/259449