python - 在 C++ 和 Python 之间交换数据的最快方法?

标签 python c++ ipc

我正在开发一个用 C++ 和 Python 编写的项目。双方之间的通信是通过 TCP 套接字进行的。两个进程在同一台机器上运行。

问题是它对于当前的需求来说太慢了。在 C++ 和 Python 之间交换信息的最快方法是什么?

我听说过 ZeroMQ,但它会比普通的 TCP 套接字快得多吗?

编辑:操作系统是 Linux,应该传输的数据由多个 float (假设大约 100 个数字)每 0.02 秒双向传输一次。所以每秒 50 次,python 代码向 C++ 发送 100 个 float ,然后 C++ 代码以 100 个 float 响应。

最佳答案

如果性能是您关心的唯一指标,共享内存将是在同一台机器上运行的两个进程之间共享数据的最快方式。您可以在共享内存中使用信号量进行同步。

TCP 套接字也可以工作,而且速度可能足够快。由于您使用的是 Linux,我只使用管道,这是最简单的方法,它们会 outperform TCP sockets .这应该让你开始:http://man7.org/linux/man-pages/man2/pipe.2.html

更多背景资料推荐Advanced Programming in the UNIX Environment .

关于python - 在 C++ 和 Python 之间交换数据的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58169421/

相关文章:

python - Python 中的高效二维互相关?

c++ - 为什么在大括号初始化中允许在参数列表中使用额外的逗号?

python - Linux 中 Python 父进程和 C 子进程之间的通信

python - 对象超出范围并在 PySide/PyQt 中被垃圾收集

python - 图灵完备模板引擎

Python3 列表填充空字典

c++ - 如何使用二进制搜索 C++ 从二维数组中输出数据?

c++ - 使用构造函数语法初始化引用

c++ - Silverlight 客户端可以与 C++ 服务器通信吗?

c++ - 进程间通信推荐