Process 是否可以比IPC或套接字更直接地在进程之间通信?

Process 是否可以比IPC或套接字更直接地在进程之间通信?,process,ipc,communication,Process,Ipc,Communication,我有2个进程,我希望其中一个进程能够与另一个进程进行高数据吞吐量的对话。我尝试过IPC(特别是boost::iterprocess)和套接字,但它们的性能/吞吐量太慢,无法使用 我的回退选项是作为第一个进程的附加子进程启动第二个进程(加载其dll、创建“工具”等),这具有最佳性能,因为它们在技术上是同一个进程,传递数据只是用dll调用接口函数 我正在寻找避免这样做的方法,但仍然有这样的表现。是否可以设置一个DLL,让两个进程可以加载并以某种方式共享内存空间?IPC和套接字是这里唯一的选项吗?在w

我有2个进程,我希望其中一个进程能够与另一个进程进行高数据吞吐量的对话。我尝试过IPC(特别是boost::iterprocess)和套接字,但它们的性能/吞吐量太慢,无法使用

我的回退选项是作为第一个进程的附加子进程启动第二个进程(加载其dll、创建“工具”等),这具有最佳性能,因为它们在技术上是同一个进程,传递数据只是用dll调用接口函数


我正在寻找避免这样做的方法,但仍然有这样的表现。是否可以设置一个DLL,让两个进程可以加载并以某种方式共享内存空间?IPC和套接字是这里唯一的选项吗?

在windows上,可以使用命名管道。当在本地使用时,它们一度被认为比套接字更有效。然而,它们已经过时了。您可以在此处了解更多信息

在windows上,您可以使用命名管道。当在本地使用时,它们一度被认为比套接字更有效。然而,它们已经过时了。您可以在此处了解更多信息

对于本地进程,您可以使用共享文件。如果您对文件进行内存映射,速度会快得多。

对于本地进程,您可以使用共享文件。如果你用内存映射文件,速度会快得多。

你的问题中的“IPC”是什么?套接字、管道、共享内存都是实现IPC的方法。是的,您可以在Windows、Linux和其他通用系统上使用共享内存。在C++中,你可以声明一个内存块(至少在Windows上),或者你可以调用内存映射文件(MMF)函数。在Linux和BSD上,还可以使用内存映射文件函数。 除了将第二个进程转换为DLL之外,MMF是最快的方法。命名管道和其他任何东西都比较慢

你问题中的“IPC”是什么?套接字、管道、共享内存都是实现IPC的方法。是的,您可以在Windows、Linux和其他通用系统上使用共享内存。在C++中,你可以声明一个内存块(至少在Windows上),或者你可以调用内存映射文件(MMF)函数。在Linux和BSD上,还可以使用内存映射文件函数。 除了将第二个进程转换为DLL之外,MMF是最快的方法。命名管道和其他任何东西都比较慢