We ran a series of throughput tests using Chronicle Queue and Queue-Zero. Each test first appended 80M 500 byte messages, then read back all the messages (ie the reads and writes did not overlap). The appends and reads were all performed in a tight loop without any delay between iterations, and the time per 1M reads/writes measured through the duration of the test.
All tests were run on a Xeon E5-2650 v4 @ 2.20GHz, with queues backed by tmpfs. The test thread was pinned to an isolated core.
The results are summarised in the plots below for Queue and Queue-Zero separately showing:
– The time (in seconds) to append successive blocks of 1M messages
– The time (in seconds) to read successive blocks of 1M messages
followed by the same data plotted as throughput rates:
– The throughput (M msgs/s) when appending successive blocks of 1M messages
– The throughput (M msgs/s) when reading successive blocks of 1M messages
Each plot shows the results of the test with both Java and C++.
Queue – Times per 1M Appends and Reads
Queue – Message Rate per 1M Appends and Reads
Queue-Zero – Times per 1M Appends and Reads
Queue-Zero – Message Rate per 1M Appends and Reads
Want access to exclusive Chronicle content?
The Chronicle Community is now live, hit the button below and join the community, for free! You'll get exclusive access to blogs, guides and video content. Join today!