最近我正在使用 imdisk http://www.ltr-data.se/opencode.html/#ImDisk 我正在使用以下命令制作 1 GB ramdisk:imdisk.exe -a -t vm -m V: -s 1024M -p "/fs:NTFS /q /y /v:Name /c" 我想知道多少物理 Ram 占用了这个 ramdisk。但似乎这取决于 ramdisk 是如何填充文件的。它从几 MB 开始,然后随着我复制的每个文件而增加。如果我随后删除这些文件,则它所占用的物理 RAM 量不会减少。所以我不能使用 GetDiskFreeSpaceEx 来获取物理内存的数量,因为它不会正确显示。此外,我无法将程序的驱动程序视为普通程序,因此我可以测量其大小。
我和作者谈过,他说:
好吧,你说的是物理内存。我在谈论内核地址空间。ImDisk 一次在一个地址块中为 ram 磁盘分配所有内存,因此没有动态分配或类似的东西。
我认为确定该地址空间在某个特定时刻使用多少物理内存的唯一方法是,如果有一些未记录的 API 报告特定内存块的提交/物理值。但是,我不知道任何此类 API。
但也许有人知道一种方法......我的意思是在程序中获得这个数字,而不仅仅是视觉上。