2010-02-17 43 views
1

我正在使用基于CORBA的系统,该系统最初设计为可在多个服务器上运行。如果我想共同定位CORBA服务,以便调用跨越进程边界发生,但不跨机器发生,是否有可以设置的优化设置让ORB知道这种情况?例如,是否有可能在这种模式下绕过TCP/IP堆栈(我怀疑不是)?co-located CORBA调用优化性能

+0

你真的需要ORB吗?很多CORBA代码没有。 – 2010-02-17 18:26:08

+0

“The ORB”可以是一组库。除非需要动态创建/激活对象或提供其他服务,否则大多数现代ORB不需要“ORB过程”。 –

回答

1

ORB应该能够自己弄清楚这一点,并以最佳方式发送调用。

但是,在不使用IIOP或TCP/IP的情况下支持跨进程调用将取决于您使用的ORB。某些ORB支持共享内存,命名管道,UNIX域套接字和其他变体,但是您需要检查ORB的文档以了解如何配置它们。您可能需要以不同的方式构建对象引用。

1

适用标准优化建议:只优化已被证明会导致性能问题的建议。

2002年,我解决了这个完全相同的问题,并发现一条消息与OmniORB shared memory transport有关。对于OmniORB来说,往返时间可能会减少10-15%,这占整体资源使用量的百分比非常小,可以忽略不计。