C ++命名为Windows上的共享内存,SSD与HDD

时间:2018-06-15 05:42:59

标签: c++ shared-memory file-mapping

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

1 个答案:

答案 0 :(得分:0)

答案是"它取决于"。当有足够的RAM并且内存处于活动状态时,Windows将不使用该磁盘。我们当然不知道您的程序需要多少共享内存或其他用途。