Download and Install
Full Software Listings
Performance of a distributed system can be measured in variety of ways. For comprehensive performance tests of Ice itself, see this Ice vs CORBA comparison done by ZeroC.
The tests we perform are slightly different and reflect the typical usage of our components: frequent transfer of small to medium size messages. Here we provide some numbers on round trip time (RTT) for sending messages of various sizes. The plots below show average RTT for sending 100 objects with an interval of 0.25s. Vertical bars show min and max values. Ping results are shown for comparison.
We transmit orca::PingReplyData which contains a single integer and a variable-length sequence of doubles. We use doubles to make Ice work a bit harder during marshalling/demarshalling. Presumably, a sequence of bytes can be copied all at once, whereas doubles must be converted according to endiness. (This is just a theory and should be verified). The length of the sequence of double is varied from 1 to 10e6. The size of the byte stream after serialization is estimated using sizeof() function. This is the size of the payload. The actual number of bytes on the wire is slighly higher due to Ice protocol overhead.
Orca objects are sent from Pinger to Replier and immediately sent back. The process is repeated 100 times. There is 0.25s delay after each send-receive operation. For a tutorial on how to obtain these results in your environment see Testing Orca Latencies.
The ping settings closely follow the settings described above. RTT values are measured for packet sizes from 16 B to 64 KB (maximum allowed size).
$ ping host -c 100 -s 8 -i 0.25 -q $ ping host -c 100 -s 24 -i 0.25 -q ... $ ping host -c 3 -s 32760 -i 0.25 -q $ ping host -c 3 -s 65499 -i 0.25 -q
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)