ORBexpress Performance
ORBexpress®, OIS’s premier object request broker (ORB), is a lightweight CORBA-compliant product optimized for use in the real-time, embedded, and high-performance development environment, combining high-speed performance with extreme reliability.
ORBexpress was designed from the ground up to provide developers with the smallest, fastest, most predictable ORB on the market. Inherent in the design process is our commitment to:
-
- Minimize the memory footprint
- Provide minimal overhead for local and remote invocation
- Optimize the performance of the ORB within all application types
Performance
Basics
Memory Footprint:
ORBexpress is designed to be flexible, offering a variety of configurations to ensure that the memory footprint is as small as possible. By using these different types of configurations, ORBexpress provides the flexibility to be used in many types of real-time, embedded, and high-performance applications.
The footprint can be configured to be as low as 78K, and any unused features will be automatically omitted from the target application. By minimizing the footprint, the internal structures are optimized within the available space, while per object overhead is very small.
Overhead:
CORBA adds two types of overhead, fixed and variable, and ORBexpress is designed to minimize any overhead for local and remote operations. The graph below shows the time, in Microseconds, of a single round trip-performance.
This graph identifies the minimal overhead ORBexpress provides in a two-way operation (an exercise least favorable to a CORBA system). In this instance, ORBexpress adds on 17% to the round-trip time, as opposed to using sockets directly. Other CORBA ORBs add 200% to 1000% overhead to the socket times. As ORBexpress scales, it will add less than 3% when sending larger volumes of data (more than 2k).
ORBexpress
In Action
A number of benchmarking studies have been completed to fully document ORB performance on a variety of leading platforms, operating systems, and transports. When benchmarking ORBs, it is important to look at more than just the total time it takes for a message invocation to complete. One important measurement is the time it takes to perform the transfer without the ORB, or with TCP/IP, to measure the time a transfer takes using a simple socket program. The difference between the socket time and the time with the ORB in the loop is the true measure of the CORBA overhead.
DII COE Trade Study
A number of benchmarking graphs are available in the DII COE study, demonstrating the performance features of ORBexpress on a variety of operating systems and machines.
Below, you will find a graph comparing ORBexpress against Sockets on a single LynxOS/PPC. For additional benchmarking graphs, please see the DII COE study.
Latency Comparison Between TCP and Other Transports
The low net overhead of the ORB is necessary to support transports other than TCP/IP over ethernet. Transports can yield better speed and a lower maximum. For example, when using a high performance switched fabric transport, the overhead of the TCP/IP layer becomes a significant performance barrier.
As shown in the graph below, when the ORB is run out of the box using IIOP, significant time is spent in the TCP/IP stack and the round trip times are not reflective of the capabilities of the transport media. Instead, however, when a replacement transport is plugged in that makes direct use of the Switched Fabric’s native APIs, the system performance show a noticeable improvement. The times of low data two-way transfers now drop to ~55 microseconds.