【发布时间】:2016-03-20 09:29:08
【问题描述】:
我有一个处理数据的 C++ 应用程序。 让我们说:
download dataA - run app to process A
download dataB - run app to process B
...
现在我需要在 B 运行中访问 A 生成的数据。我可以将它们存储在临时文件或数据库中,但这会减慢速度。有没有办法将 A 的输出保存在内存中并在 B 中再次打开?
我无法下载数据然后运行应用程序,这是一个串行处理。
【问题讨论】:
-
您能详细说明“但它会减慢速度”吗?我们在谈论多少数据?什么种类数据?如果是“串行处理”,您是否考虑过使用管道和正常的标准输出/输入?
-
大约 10GB 的数据,浮点数的 2D 矩阵
-
那么除非你有至少 10GB 或可用内存,否则真的没有办法过去使用文件。
-
我有64GB RAM,所以这个没有问题
-
对了,你有退出第一个程序来运行第二个程序吗?即使使用 10GB 管道,仍然应该可以使用,例如
./program_a | ./program_b.
标签: c++ caching memory memory-management