我正在使用 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 ......那么呢?