我正在使用一个基于CORBA的系统,该系统最初被设计为在多个服务器上运行。如果我希望将CORBA服务放在同一位置,以便跨进程边界而不是跨机器进行调用,是否有任何优化设置可以设置为让ORB知道正在发生这种情况?例如,是否可以在此模式下绕过TCP/IP堆栈(我怀疑不可能)?
发布于 2010-02-17 17:32:55
ORB应该能够自己弄清楚这一点,并以最好的方式分派调用。
但是,对不使用IIOP或TCP/IP的跨进程调用的支持将取决于您使用的ORB。有些ORB确实支持共享内存、命名管道、UNIX域套接字和其他变体,但是您需要查看ORB的文档以确定如何配置它们。您可能需要以不同的方式构造对象引用。
发布于 2010-02-17 18:16:53
标准优化建议适用:仅优化已被证明会导致性能问题的部分。
在2002年,我解决了这个完全相同的问题,发现了一条与OmniORB shared memory transport相关的消息。对于OmniORB,可以预期往返时间减少10-15%,这在总体资源使用中所占的百分比非常小,以至于微不足道。
https://stackoverflow.com/questions/2282918
复制相似问题