[omniORB] Measuring omniorb's footprint. New footprint benchmark.

Dan Kegel dank@kegel.com
Thu, 21 Feb 2002 18:02:23 -0800


I finally wrote that little corba footprint benchmark I've
been threatening to write since November.  The code and
initial results are up at http://www.kegel.com/dkcorbabench/

The benchmark measures how long it takes to do a parallel echo 
(i.e.
  for all servers do
     invoke_deferred echo request
  for all servers do
     collect results )
as a function of the number of echo servers running on the
computer (both the client and all servers are running locally).

Here's an example run showing how the latency increases with
the number of servers:

/bin # ./footprint1 100 300
Latency to 1 children is 25 ticks
Latency to 2 children is 15 ticks
Latency to 3 children is 18 ticks
Latency to 4 children is 22 ticks
Latency to 5 children is 25 ticks
Latency to 6 children is 27 ticks
Latency to 7 children is 31 ticks
Latency to 8 children is 33 ticks
Latency to 9 children is 48 ticks
Latency to 10 children is 40 ticks
Latency to 11 children is 44 ticks
Latency to 12 children is 46 ticks
Latency to 13 children is 50 ticks
Latency to 14 children is 52 ticks
Latency to 15 children is 56 ticks
Latency to 16 children is 58 ticks
Latency to 17 children is 63 ticks
Latency to 18 children is 66 ticks
Latency to 19 children is 68 ticks
Latency to 20 children is 72 ticks
Latency to 21 children is 74 ticks
Latency to 22 children is 125 ticks
Latency to 23 children is 284 ticks
echo_diiclt: An exception was thrown!

The above was with an echo server mistakenly linked with -lomniDymamic3.
When I relinked it without that library, I got up to about 28 servers
before exceding 100ms.  For comparison, with a companion benchmark
based on pipes, I got about ten times as many servers running before
I exceeded 100ms.

It kinda looks like omniorb is using a megabyte per server process,
even though they're all identical.  That's a bit excessive. 
Suggestions for reducing this overhead would be most welcome.
Also, my benchmark could use a code review; it's only the second
or third corba program I've ever written, and my first ever using
the DII.

Comments welcome.  Is this stuff of interest to anyone else?

Thanks,
Dan