-
Notifications
You must be signed in to change notification settings - Fork 1
Asynchronous Messaging
The code for asynchronous messaging is pretty straight forward, though it was designed to support the enhancements needed to achieve high-performance rather than readability.
Benchmarks were done with an Intel Core 2 Duo T6400 @ 2GHz. The timings are reported here as a base measure to show the effectiveness of the enhancements made to achieve high-performance. The first benchmark is a series of messages and response messages, where the next message is not sent until a response is received, e.g. an echo test. Each message took about 8 microseconds to process: EchoTimingTest.
In the second benchmark, a burst of messages are sent, and a response is sent for each message. The next burst is not sent until all the responses to the current burst have been received. In this case, each message took about 1.5 microseconds to process: BurstTimingTest.
The code for asynchronous message passing is not especially fast, it benchmarks at about 8 microseconds per message when the incoming message queue of the destination is empty and at about 1.5 microsconds when processing batches of messages. (These timings are of course relative. They were run on an Intel Core 2 Duo laptop.) And while the code is pretty straight forward, the API is not designed for ease-of-use. Rather, the API supports he enhancements needed to achieve high-performance.