This directory contains some very simple performance code that will compile for multiple CORBA targets. Currently, the supported targets are: OmniORB2 Version 2.2.0 OmniBroker Version 2.0b4 Mico Version 0.93b3 Note how very similar, and yet frustratingly different the various sources are. To compile, move the appropriate Makefile to 'Makefile' and type 'make'. To make performance measurements, start 'MyServer' in one shell, and run 'time MyClient' in another shell. MyClient will make 100K corba invocations. CPU time is used in both the client, and the server, while the time command measures only the time spent in the client. However, the elapsed-time reported is a good indicator for the total client+server CPU usage. Note that since this test requires the operatiing system to make frequent switchs between processes, a significant amount of time is spent in the kernel, doing process switches. The following results were obtained on a Pentium 133 w/ Linux 2.0.30 kernel & gcc 2.7.2.1: CORBA millisecs compile time binary size Implementation per call (seconds) (kiloBytes) ------------------------------------------------------- OmniORB2 0.80 26 752 OmniBroker 1.10 70 2100 Mico 4.20 60 102 Clearly, OmniORB2 holds both the raw performance record, as well as the compile time record. Note that both OmniBroker and OmniORB used statically linked libraries, while Mico uses a shared library. This results in both smaller binaries for Mico, as well as possibly affecting performance. ------------------------------------------------------- INTEROPERABILITY: Each of the three clients were able to talk to each of the three servers. This is as it should be: different versions of CORBA should eb able to interoperate. --------------------------- Linas Vepstas October 1997