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

时间:2016-03-20 09:29:08

标签: c++ caching memory memory-management

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

如果您使用的是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