我有 3 个选择要使用:套接字、activeX、com,以便在一台计算机上的应用程序之间进行通信。哪个更快?
最佳答案
只要它在一台机器上运行,进程间通信就会从根本上受到总线带宽的限制。内存到内存的复制,无论是在 TCP/IP 堆栈、命名管道支持代码还是共享内存中完成。这使得它们都同样高效。
但有一个细节很重要,即传输的数据量和完成工作所需的软件层数。只有当数据量很大时,内存总线带宽才会受到限制。对于像 COM 这样的远程过程调用协议(protocol),情况不一定如此。只有函数调用的参数需要序列化,如果您不传递数组,那可能只有几个字节。现在开销开始变得重要,当您使用像 COM 这样的高级协议(protocol)时,开销是相当大的。
使用套接字的明显缺点是您必须自己编写所有反序列化代码。如果组件的协议(protocol)不简单,则不重要。用工作时间换取方便是典型的选择,只有您能做到。
关于c++ - 应用程序之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181419/