Turn on the benchmark counters. The format of this option is: (err|out),start pattern,end pattern Start counting when the start pattern matches on the given stream and stop when the end pattern occurs. You can use "~" to match 1 or more digits. Examples: err, starting =====, PASSED in out,Iteration ~ (~s) begins:,Iteration ~ (~s) ends: The first pattern matches DaCapo output and the second matches SPECjvm2008 output. As a more detailed example, here are the options to use for getting statistics about allocations within the DaCapo pmd benchmark: -XX:JVMCICounterSize= -XX:-JVMCICountersExcludeCompiler \ -Dgraal.BenchmarkDynamicCounters="err, starting ====, PASSED in " \ -Dgraal.ProfileAllocations=true The JVMCICounterSize value depends on the granularity of the profiling - 10000 should be sufficient. Omit JVMCICountersExcludeCompiler to exclude counting allocations on the compiler threads. The counters can be further configured by the ProfileAllocationsContext option. We highly recommend the use of -Dgraal.AbortOnBenchmarkCounterOverflow=true to detect counter overflows eagerly.