We are mainly interested for using remote method invocation in low latency control system environments. Therefore we chose deliberately small, ten byte long messages as method parameters. The concrete server code does not touch the parameter. It is however read from the network interface card and put into a private buffer for the method. The highest rate at which we could receive messages using named pipes directly on our platform was 75 kHz. When using a small object invocation scheme on top, the additional processing overhead allows an upcall rate of 52 kHz. This result has been obtained by doing object dispatching in the same thread as receiving the message. Compared to a CORBA implementation, which would use sockets for intramachine calls, the performance is 30 times better.
Figure 39 shows the overall
processing times split up into user and kernel space
times. The user processing time is always displayed separately in the
pie charts. The absolute upcall rates are given in brackets with
the figure titles. The left one shows communication
interfacing to FIFOs directly. The right one shows the
performance achieved with our object oriented
method invocation layer based on FIFO communication.
We see that the overhead is dominated by
dispatching (
on average).
Using the active object[LS96] approach, which allows several
dispatching threads to work interleaved, we reveal (Figure
40) that the overhead of thread switching and queue
synchronisation has a significant impact on the performance.
Using the implementation from the ACE toolkit [Sch94], we
obtain an upcall rate of 10 kHz. With an implementation that makes less
extensive use of synchronisation primitives, we can reach 30 kHz
(depicted as FastAO in figure 40). The percentage of
time spent in the recv system call is much higher than when
using the ACE implementation of the active object (46% versus 29%).
The amount of user space processing shown as a separated sector
represents again the dispatching overhead. At 16%, it is very close
to the value shown in figure 39, right plot (14%).