The primary optimisation target for Erlang on Xen is the startup latency. At the same time the overall performance should be at least similar to to that of Erlang/OTP. The preliminary Ling vs. BEAM performance measurements are given in the table below. The measurements show that Ling is currently slightly slower than BEAM.
Ling | BEAM | |||
---|---|---|---|---|
Area | Millis | Estone | Millis | Estone |
list manipulation | 428 | 3,789 | 295 | 5,151 |
small messages | 6,206 | 508 | 3,768 | 822 |
medium messages | 6,538 | 947 | 4,264 | 1,425 |
huge messages | 734 | 675 | 413 | 1,202 |
pattern matching | 119 | 6,525 | 115 | 6,761 |
traverse | 201 | 2,471 | 296 | 1,677 |
Work with large dataset | 161 | 1,737 | 176 | 1,591 |
Work with large local dataset | 137 | 2,044 | 172 | 1,633 |
Alloc and dealloc | 62 | 2,014 | 90 | 1,379 |
Bif dispatch | 164 | 4,716 | 126 | 6,181 |
Binary handling | 818 | 606 | 718 | 691 |
ets datadictionary | 376 | 2,970 | 589 | 1,894 |
Generic server (with timeout) | 2,662 | 943 | 2,582 | 972 |
Small Integer arithmetics | 187 | 1,493 | 131 | 2,131 |
Float arithmetics | 72 | 433 | 48 | 646 |
Function calls | 99 | 7,828 | 87 | 8,975 |
Timers | 102 | 1,214 | 349 | 355 |
Links | 136 | 230 | 271 | 115 |
ESTONES | 41,144 | 43,601 |
The peformance data were obtained by running repeatedly estone_SUITE test suite and averaging the results. The suite was run 10 times for Ling and 5 times for BEAM.
Both virtual machines were running on the same platform:
BEAM tests were using Erlang/OTP R15B01 (Erlang (SMP, ASYNC_THREADS, HIPE) (BEAM) emulator version 5.9.1). The tested version of Ling was 0.1.8.
In both cases estone_SUITE was run using a Common Test framework. Raw test logs are available (Ling, BEAM).
The tests demonstrate that the performance of Ling is sufficiently similar to that of BEAM. It should be emphasized that no performance optimisations were conducted for Ling yet. Such optimisations are of a relatively low priority for the project.
Many factors may have affected performance of virtual machines either positively or negatively:
This page will be updated regularly, when new performance data become available. You are welcome to build a Xen image for your application and check how fast it runs.