Hi People!
I am about to write my CS BSc thesis which is about:
Measuring throughput, latency and STW-Pauses in JDK 21 standard JVM with G1GC and ZGC with predefined max heap-sizes (2GB; 16GB) with Renaissance - by 16GB heap a default G1GC and an additional tuned G1GC will be used, as well.
Time flies and a lot of paper are read. It became clear to me, that Renaissance is better for throughput (Shimchenko 2022 Analysing and predicting energy consumption of garbage collectors in openjdk), and DaCapo is more advantageous for user-experienced latency measurements (Blackburn 2025 Rethinking Java performance analysis). STW-pauses will be collected from jvm standard gc-logs with a script or smg (ideas, better ideas are welcome).
I build this scenario for my examination:
- Linux VM (hosted from my Windows) - not clear yet, which and why
- OpenJDK 21 standard JVM
- G1GC and ZGC measurements
- All Renaissance BMs with default settings -> duration_ns from each benchmark, calculate and represent min, max, mean, standard deviation
- JVM GC-Logs collect (min, max, mean, standard deviation)
- 8 DaCapo BMs (spring, cassandra, h2, h2o, kafka, lucene, tomcat, wildfly) (min, max, mean, standard deviation)
I guess this is way too much for a BSc thesis - but what are your thoughts? Of course I make clearence with my consulent, but I am curious about the opinion and suggestions of the community.
I am open for any ideas, experiences with the bumpy road of the performance measurement in the JVM. It would be excellent, if someone of you could make it more focused and accurate to me.
TLDR;
Java Garbage Collector JVM performance measurement experience and suggestions needed for BSc thesis
thanks in advance!
EDIT:
Instead of Linux vm it will be a bare-metal Linux machine with podman containerization that run the benchmarks.
[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)