-
Notifications
You must be signed in to change notification settings - Fork 6
Performance
Although performance numbers should always be taken with a pinch of salt, this page collects some of our findings.
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() |
SPQR - stream processing and querying in realtime by Otto Group