No description
Find a file
2023-08-23 09:21:25 +02:00
benchmark added benchmark and renamed packages 2023-08-22 14:38:38 +02:00
demo replaced MethodHandles with custom reflection-less reflectivity 2023-08-23 09:14:09 +02:00
jackson replaced MethodHandles with custom reflection-less reflectivity 2023-08-23 09:14:09 +02:00
jdbc replaced MethodHandles with custom reflection-less reflectivity 2023-08-23 09:14:09 +02:00
lib replaced MethodHandles with custom reflection-less reflectivity 2023-08-23 09:21:25 +02:00
.gitignore initial commit after two days work 2023-05-24 22:12:14 +02:00
jmeter-test.jmx added benchmark and renamed packages 2023-08-22 14:38:38 +02:00
LICENSE Initial commit 2023-05-24 22:10:19 +02:00
pom.xml added benchmark and renamed packages 2023-08-22 14:38:38 +02:00
README.md added benchmark results 2023-08-22 15:11:36 +02:00

Design decisions

  • built for speed and efficiency (within java)

  • uses storage format borrowed from SQLite with 1 exception: float is stored as f32 (SQLite only uses f64)

  • needs jdk 9 (VarHandles)

  • minimal reflection (once per creation of the list)

  • The only class (for now): ContiguousList

  • Still in a very early stage

    • the code is working
    • but it remains to be seen if this is a good idea

JMH Benchmark

Benchmark Mode Cnt Score Error Units
classic avgt 5 13312478.471 ± 259931.663 ns/op
contiguous avgt 5 13063782.511 ± 451500.662 ns/op
  • pretty much on par despite all the overhead for inspecting the list elements
  • will try to squeeze out more performance

Benchmark environment details

[ec2-user@ip-172-31-22-215 Contiguous]$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Address sizes:         46 bits physical, 48 bits virtual
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Vendor ID:             GenuineIntel
Model name:            Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
CPU family:            6
Model:                 63
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
Stepping:              2
BogoMIPS:              4800.04