RFR: 8325403: Add SystemGC JMH benchmarks
Stefan Johansson
sjohanss at openjdk.org
Wed Feb 14 11:26:06 UTC 2024
On Fri, 9 Feb 2024 11:53:17 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:
>> Please review this change to add some System GC JMH benchmarks.
>>
>> **Summary**
>> When developing and improving the Full GC implementation for the different GCs, using `System.gc()` to test performance is sometime very useful. This change adds a set of System GC benchmarks using JMH. The tests all have the same structure, a `@Setup` function that generates heap contents and a `@Benchmark` function which only calls `System.gc()`. The different scenarios covers some basic use-cases but more can certainly be added going forward.
>>
>> Since the benchmark function is just a single call to trigger the GC it makes sense to use the single shot JMH mode and fork a new JVM for each run. The tests also specify default heap options to avoid triggering GC during object creation to give all runs more or less the same heap layout.
>>
>> **Testing**
>> Local and aurora testing verifying that results are fairly stable.
>
> Since all of them are related to system-gc, does it make sense to put them inside a folder, `system_gc`, and a text file containing info on how to run them altogether?
Thanks @albertnetymk, @ericcaspole, @turbanoff and @tschatzl for the reviews.
I will integrate this after lunch, unless someone has anything more. One final note, after the package name change, just providing `systemgc` as the JMH regexp will not work, since more tests matches this. Instead use `gc.systemgc`.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17784#issuecomment-1943569994
More information about the hotspot-gc-dev
mailing list