This class contains infrastructure to maintain counters based on
infrastructure is enabled by specifying either the GenericDynamicCounters or
The counters are kept in a special area allocated for each native JavaThread object, and the
number of counters is configured using
-XX:+/-GraalCountersExcludeCompiler configures whether to exclude compiler threads
(defaults to true).
The subsystems that use the logging need to have their own options to turn on the counters, and
insert DynamicCounterNodes when they're enabled.
Counters will be displayed as a rate (per second) if their group name starts with "~", otherwise
they will be displayed as a total number.
In order to create statistics about allocations within the DaCapo pmd benchmark
the following steps are necessary:
-XX:GraalCounterSize=value. The actual required value depends on the granularity
of the profiling, 10000 should be enough for most cases.
-XX:+/-GraalCountersExcludeCompiler specifies whether the numbers generated by
compiler threads should be excluded (default: true).
- Start the DaCapo pmd benchmark with
"-G:BenchmarkDynamicCounters=err, starting ====, PASSED in " and
- The numbers will only include allocation from compiled code!
- The counters can be further configured by modifying the