Java COM桥

Java COM桥,java,com,low-latency,Java,Com,Low Latency,我有一个超低延迟程序,需要与Windows COM组件接口。最快的方法是什么?使用JACOB之类的COM桥或编写本机COM库,并使用ZeroMQ之类的消息总线发送消息?如果使用ZeroMQ,您将处理两个进程。而且,将消息从一个进程传递到另一个进程比在同一进程中进行同样的操作要昂贵。因此,使用JavaCOM网桥肯定会降低延迟 话虽如此,但只有当您处理的是极低的延迟时,它才有意义。如果您的COM组件的延迟已经比进程间消息传递高出几倍(例如,因为它正在通过网络接收和转发消息或执行昂贵的计算),则任何一

我有一个超低延迟程序,需要与Windows COM组件接口。最快的方法是什么?使用JACOB之类的COM桥或编写本机COM库,并使用ZeroMQ之类的消息总线发送消息?

如果使用ZeroMQ,您将处理两个进程。而且,将消息从一个进程传递到另一个进程比在同一进程中进行同样的操作要昂贵。因此,使用JavaCOM网桥肯定会降低延迟

话虽如此,但只有当您处理的是极低的延迟时,它才有意义。如果您的COM组件的延迟已经比进程间消息传递高出几倍(例如,因为它正在通过网络接收和转发消息或执行昂贵的计算),则任何一个选项都是可以的,因为它们对总体延迟的影响都很小


注意,JACOB不支持所有COM组件,只支持那些具有COM自动化接口的组件。因此,您可能需要使用不同的Java COM桥接器,如JCom。

我真的不明白为什么这两个选项可以实现相同的效果。你能更好地描述一下你想要实现的目标吗?COM组件在做什么?难道您没有COM组件的结果需要以尽可能低的延迟返回吗?Codo…我通过第三方COM组件接收到一个事件,我需要将其传播到Java程序(实际数据非常小…只有几倍)。我需要尽可能快地完成这项工作。COM网桥是否确实比使用本地COM组件和ZeroMQ进行本地消息传递时的延迟更低?我原以为在Java中使用COM会有一些开销?进程内COM组件的开销非常低,在Java进程或ZeroMQ进程的两种设置中都有。Java到COM桥接的额外开销取决于您使用的桥接产品,但它应该类似于对本机代码的两个或三个调用。同样:您可以在Java-to-COM桥中使用它,也可以在从ZeroMQ接收消息时使用它。但是ZeroMQ解决方案肯定会增加发送消息、将消息传输到另一个进程以及进行进程上下文切换的成本。