Encon vs Jinterface benchmarks
The main purpose of the JMH tests below is to compare the Ericsson
’s jinterface package and Appulse
encon library.
Benchmark host machine
For benchmarking we are using DigitalOcean
’s CPU Optimized Droplets:
$> sudo lshw -short
H/W path Device Class Description
================================================
system Droplet
/0 bus Motherboard
/0/0 memory 96KiB BIOS
/0/401 processor Intel(R) Xeon(R) CPU E5-2697A v4 @ 2.60GHz
/0/402 processor Intel(R) Xeon(R) CPU E5-2697A v4 @ 2.60GHz
/0/1000 memory 4GiB System Memory
/0/1000/0 memory 4GiB DIMM RAM
/0/100 bridge 440FX - 82441FX PMC [Natoma]
/0/100/1 bridge 82371SB PIIX3 ISA [Natoma/Triton II]
/0/100/1.1 storage 82371SB PIIX3 IDE [Natoma/Triton II]
/0/100/1.2 bus 82371SB PIIX3 USB [Natoma/Triton II]
/0/100/1.2/1 usb1 bus UHCI Host Controller
/0/100/1.3 bridge 82371AB/EB/MB PIIX4 ACPI
/0/100/2 display QXL paravirtual graphic card
/0/100/3 network Virtio network device
/0/100/3/0 eth0 network Ethernet interface
/0/100/4 storage Virtio SCSI
/0/100/4/0 generic Virtual I/O device
/0/100/5 storage Virtio block device
/0/100/5/0 /dev/vda disk 26GB Virtual I/O device
/0/100/5/0/1 /dev/vda1 volume 24GiB EXT4 volume
/0/100/5/0/e /dev/vda14 volume 4095KiB BIOS Boot partition
/0/100/5/0/f /dev/vda15 volume 105MiB Windows FAT volume
/0/100/6 generic Virtio memory balloon
/0/100/6/0 generic Virtual I/O device
-
JMH version: 1.21
-
VM version: JDK 1.8.0_181, Java HotSpot(TM) 64-Bit Server VM, 25.181-b13
-
VM options: -Xms1G -Xmx2G
-
Warmup: 10 iterations, 10 s each
-
Measurement: 20 iterations, 10 s each
-
Timeout: 10 min per iteration
-
Threads: 1 thread, will synchronize iterations
-
Benchmark mode: Throughput, ops/time
The results
Multi client tests
The installation consist of a server node at separate thread, which echoes the messages and N-threads-clients, which pitch the messages and receive it back.
implementation | clients | score | error | units |
---|---|---|---|---|
encon | 1 | 11679.266 |
414.090 |
ops/s |
jinterface | 1 | 11862.914 |
385.573 |
ops/s |
encon | 2 | 22337.500 |
918.292 |
ops/s |
jinterface | 2 | 18217.878 |
861.270 |
ops/s |
encon | 4 | 36001.870 |
2033.472 |
ops/s |
jinterface | 4 | 23202.485 |
1295.186 |
ops/s |
encon | 8 | 44742.858 |
1865.853 |
ops/s |
jinterface | 8 | 23495.184 |
671.766 |
ops/s |
Mailbox to mailbox
In this test we have only one node and two mailboxes which send the message to each other.
implementation | score | error | units |
---|---|---|---|
encon | 4080746.356 |
79809.419 |
ops/s |
jinterface | 4885380.490 |
61920.971 |
ops/s |