使用Boost Interprocess创建托管共享内存需要很长时间

Creating Managed Shared Memory using Boost Interprocess takes long time

本文关键字:内存 长时间 共享 Boost Interprocess 创建 使用      更新时间:2023-10-16

我正在使用Boost。采用Windows Embedded 7 64位操作系统的英特尔i7处理器上的进程间库。我已经成功地从两个不同的进程创建了两个大约400兆字节大小的托管共享内存。当我尝试从第三个进程创建1 GB的托管共享内存时,它需要5分钟以上的时间。驱动器中有充足的可用空间。进程卡在功能上:

new managed_shared_memory(open_or_create, name, 1 Gigabyte);

为什么这么慢?如果我单独运行这个过程,它只需要不到1秒的时间。

当我试图从第三个进程创建1 GB托管共享内存时

是否使用其他名称?如果没有,可能是另一个进程持有锁。如果另一个进程崩溃,它甚至可能会放弃处于保持状态的锁。另请参见例如,增强进程间互斥和检查放弃

这需要5分钟以上的时间。驱动器中有充足的可用空间。进程卡在功能上:managed_shared_memory::managed_shared_memory

共享内存是内存,而不是文件。如果你的系统内存太少,无法支持虚拟领域,你会看到很多交换(在等待过程中磁盘是否非常活跃?那么这可能是你的问题(。

如果需要内存映射文件,请使用managed_mapped_file。无需其他更改。