我有几个数学dll,其中一些用于x64平台,一些用于x86。我还需要与几个COM接口(特别是64位版本的Matlab和STATISTICA)进行通信。因此,为了解决混合dll的问题,我将我的软件分成3个独立的程序 - 其中2个是32位和1 - 64位。所有程序必须相互通信并连接到相互的SQL数据库。此外,有可能一个程序可以在客户端计算机上运行,另一个程序可以在服务器计算机上运行。
连接流程的最佳技术(在性能方面)是什么?我需要真正快速地将数据数组从x86程序发送到x64,执行计算并将它们发回。事实上,使用网络的能力并不重要。
我没有太多时间对不同的方法(管道,WCF等)进行基准测试,并希望专注于研究一种技术。
答案 0 :(得分:0)
在非托管代码中,COM可用于此目的(查找进程外服务器,即本地服务器)。内部COM使用RPC,但比RPC更方便,因为客户端使用对象就好像它们位于客户端进程自己的地址空间中(而它们位于服务器进程的地址空间中)。 COM也可用于跨计算机进行通信,查找DCOM。
在.NET中有类似的东西,WCF就是其中之一,但我不确定它们的效率如何。特别是WCF似乎使用基于文本的协议,这可能比COM的RPC效率低。