我正在使用NSM在不同的进程之间交换数据,并且所有工作正常和花花公子,但是内存空间在页面文件中声明,我认为这是默认的方式。
hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
BUF_SIZE, // maximum object size (low-order DWORD)
szName); // name of mapping object
我的问题是,是在磁盘上声明文件,然后将实际内容放入RAM,并从那里访问? 我一直在家用电脑上做实验,这是一台i5 4核心,16 GB 1800 MHz RAM和SSD,以及在实验室的i9 12核心,32 GB 2800 MHz RAM和上的相同实验HDD
"更好"计算机慢了很多次(相同的实验参数),但我被告知它与SSD或HDD没有任何关系。 实验算法大量使用NSM进行数据交换,所以如果它必须访问磁盘上的文件,我可以看到为什么它更慢,但如果它是所有RAM ...那么?
答案 0 :(得分:0)
答案是"它取决于"。当有足够的RAM并且内存处于活动状态时,Windows将不使用该磁盘。我们当然不知道您的程序需要多少共享内存或其他用途。