【发布时间】:2017-02-25 11:37:58
【问题描述】:
我想在 C++ 和 Python 之间共享内存。
我的问题:
- 我正在使用 C++ 处理大数据集(高达 6 GB 的 RAM)。所有计算均在 C++ 中完成。
- 然后,我想将所有结果“粘贴”到 Python 程序中。但是我只能将我的数据写入磁盘,然后从 Python 中读取该文件,效率不高。
有没有办法“映射”与 C++ 变量对应的内存,以便我可以从 Python 访问数据?我不想将 6GB 的数据复制到硬盘上。
【问题讨论】:
-
您可能想在 Google/Bing 中搜索“进程间通信”(IPC);你可能想看看this Stackoverflow 帖子
-
根据您在 C++ 中拥有的代码库有多大,使用Cython 之类的东西可能是个好主意。
-
@WhiZTiM thx,目前我正在考虑 IPC 方法:共享内存,关于套接字或将文件映射到内存的文件。我知道python没有指针,但是有没有办法通过地址访问内存?
-
@Bendik 大约 7k 的 c++ 行,并且还在增长。 atm 我正在考虑通过内存地址读取python中的数据
-
您可能希望在您的 c++ 程序中使用 embed the python interpreter,这将允许您使用 python APIs 让 python 代码访问其数据。
标签: python c++ data-transfer