co-located CORBA call optimization for performance
I am working with a CORBA based system which originally was designed to run on multiple servers. If I wanted to co-locate the CORBA services so that the 开发者_Python百科calls are happening across process boundaries but not across machines, are there any optimization settings which can be set to let the ORB know this is happening? For example, is it possible to bypass the TCP/IP stack in this mode (I suspect not)?
The ORB should be able to figure this out on its own, and dispatch the invocation in the best way.
However, support for cross-process calls without using IIOP or TCP/IP is going to be dependent on which ORB you are using. Some ORBs do support shared-memory, named pipes, UNIX domain sockets and other variations, but you'll need to check the ORB's documentation to figure out how to configure them. You may need to construct your object references in a different manner.
Standard optimisation advice applies: only optimise that which has been shown to be causing a performance issue.
In 2002 I addressed this exact same issue and found a message related to OmniORB shared memory transport. For OmniORB a 10-15% reduction in round trip time could be expected, which as a percentage of overall resource usage was so small as to be insignificant.
精彩评论