Skip to content
This repository has been archived by the owner on Jan 27, 2020. It is now read-only.

Performance

Christian Kreutzfeldt edited this page Apr 21, 2015 · 13 revisions

Although performance numbers should always be taken with a pinch of salt, this page collects some of our findings.

Source-to-Emitter

One of the very first test cases on this topic tries to measure the message throughput for a very simple pipeline set up: read messages from a random event generator and pass it on to an emitter.

For this test case the event generator produces a fixed number of items (10.000.000). The emitter receives a count-down latch which is decremented for each incoming item.

When the count-down latch reaches zero, the time is measured between pipeline execution and latch release.

As the default queue implementation is based on the OpenHFT Chronicle Queue, all contents are written to disk. Therefore the test case was carried out with two different setups:

  • using the temporary folder on disk (SATA)
  • using a ramdisk

All times provided as milliseconds. The setup this test was executed in is specified as follows:

  • Intel i7-2600k
  • 14GB RAM
  • Hitachi HDS 72202 ALA330
  • the message contained an empty string
Setup Messages Duration (all) Duration (single, avg) Duration (single, min) Duration (single, max)
Temp 10.000.000 1269 0 0 9
Temp 20.000.000 2512 0 0 9
Temp 30.000.000 3782 0 0 7
Temp 40.000.000 4953 0 0 9
Temp 50.000.000 6543 0 0 5
Temp 100.000.000 16139 0 0 502
Ram 10.000.000 1081 0 0 5
Ram 20.000.000 2438 0 0 7
Ram 30.000.000 3618 0 0 9
Ram 40.000.000 4674 0 0 8
Ram 50.000.000 6003 0 0 16
Ram 100.000.000 12347 0 0 16
The test case can be found at MicroPipelineTest#test_performance1()
Clone this wiki locally