Running the benchmark for both Spring and Quarkus and collecting JFR events via --profiler syncjfr highlight a known alert
This means that the available parallelism is not enough to make concurrent marking/refinement to benefit of it.
Translated: both the workload and availble cores buy nothing to G1 if not to slow it down in its concurrent phases.
Usually with so little cores and heap size, using parallel (or less, even serial?) is the way to go, and is what I usually recommend in production with this type of environment - not to mention that it can lower RSS to both frameworks.
Maybe is the case to use parallel for both and I believe I gave the same suggestion to @brunobat long time ago for a similar test, with some very very interesting results.
Running the benchmark for both Spring and Quarkus and collecting JFR events via --profiler syncjfr highlight a known alert
This means that the available parallelism is not enough to make concurrent marking/refinement to benefit of it.
Translated: both the workload and availble cores buy nothing to G1 if not to slow it down in its concurrent phases.
Usually with so little cores and heap size, using parallel (or less, even serial?) is the way to go, and is what I usually recommend in production with this type of environment - not to mention that it can lower RSS to both frameworks.
Maybe is the case to use parallel for both and I believe I gave the same suggestion to @brunobat long time ago for a similar test, with some very very interesting results.