C++ - 关闭应用程序后保留内存

C++ - preserve memory after app has been closed

本文关键字:保留内存 应用程序 C++      更新时间:2023-10-16

我在C++中有一个处理数据的应用程序。比方说:

download dataA - run app to process A
download dataB - run app to process B
...

现在我需要在 B 运行中访问 A 生成的数据。我可以将它们存储在临时文件或数据库中,但它会减慢速度。有没有办法在内存中保留 A 的输出并在 B 中再次打开它?

我无法下载数据然后运行该应用程序,这是一个串行处理。

这取决于操作系统。在 Linux 上,您可以将数据存储在共享内存中,即使没有应用程序使用它,共享内存也是持久的。在Windows上也有共享内存,但是如果没有应用程序使用它,它将自动回收,因此一旦程序A结束,数据就会丢失。

这可以使用共享内存来完成。这取决于您的操作系统。

如果您使用的是 Windows:https://msdn.microsoft.com/en-us/library/windows/desktop/aa366551(v=vs.85).aspx

如果您使用的是 Linux:https://beej.us/guide/bgipc/output/html/multipage/mmap.html

但是还有另一种选择,使用 Boost.Interprocess 工具:http://www.boost.org/doc/libs/1_60_0/doc/html/interprocess/sharedmemorybetweenprocesses.html