This test were perfomed by letting a sender thread send messages to a receiver.
AMD K6-2 400:
Win98, within process: 16,900 transactions / second
RDOS between processes: 22,500 transactions / second
Pentium 75:
WinNT, within process: 3,200 transactions / second
RDOS between processes: 3,750 transactions / second
The tests wheren't really compatible, since the Windoze performance is achieved between threads in the same process, while the RDOS performance is between different processes. So Windoze would loose even more if I could figure out how to pass data from one process to another in Windoze.
This test messures mostly the speed of the basic synchronization and scheduling algorithms, and even though RDOS has to flush the TLB a couple of times per transaction, it's still faster than Windoze.
This is a preliminary comnparison between named pipes in NT and RDOSs SMP protocol:
Between 400MHz CPUs on a 10MB Ethernet:
RDOS, NE2000 PCI : 0.5 - 1.0ms / transaction
NT: 10-15ms / transaction
Since SMP is an optimized transaction protocol over IP, this difference is just natural. I'll do a SMP for Windoze, and do a test on more equal terms later.
One odd thing this test showed was that I could only achieve a 1/5th of this theoretical performance. Only if I used 5 separate senders could I almost achieve the maximum performance. This is due to the network card buffering packets, and working in paralell with the CPU decoding them. Also, the network thread has above-normal priority, so it can keep up with a fully-loaded ethernet card, provided the CPU is fast enough.