IPC方法的选择
Posted
技术标签:
【中文标题】IPC方法的选择【英文标题】:Choice of IPC method 【发布时间】:2012-09-18 08:27:31 【问题描述】:我有几个数学 dll,其中一些用于 x64 平台,一些用于 x86。我还需要与几个 COM 接口(特别是 64 位版本的 Matlab 和 STATISTICA)进行通信。因此,为了解决混合 dll 的问题,我将我的软件分成 3 个独立的程序 - 其中 2 个是 32 位和 1 个 - 64 位。所有程序都必须相互通信并连接到相互 SQL 数据库。此外,有可能一个程序将在客户端计算机上运行,而另一个程序将在服务器计算机上运行。
连接流程的最佳技术(就性能而言)是什么?我需要真正快速地将数据数组从 x86 程序发送到 x64,执行计算并将它们发回。事实上,使用网络的能力并不重要。
我只是没有太多时间对不同的方法(管道、WCF 等)进行基准测试,而是想专注于研究一种技术。
【问题讨论】:
一种可能的选择:使用 ZeroMQ 作为应用程序之间的消息传递系统。速度极快且非常易于使用。 【参考方案1】:在非托管代码中,COM 可用于此目的(查找进程外服务器,也称为本地服务器)。 COM 在内部使用 RPC,但比 RPC 更方便,因为客户端使用对象就像它们在客户端进程自己的地址空间中一样(而它们在服务器进程的地址空间中)。 COM也可以用来跨电脑通信,查DCOM吧。
.NET 中也有类似的东西,WCF 就是其中之一,但我不确定它们的效率如何。特别是 WCF 似乎使用基于文本的协议,这可能比 COM 的 RPC 效率低。
【讨论】:
个人意见:COM很慢,DCOM很复杂,容易出错以上是关于IPC方法的选择的主要内容,如果未能解决你的问题,请参考以下文章