in optaplanner-benchmarks/optaplanner-perf-framework/src/main/java/org/jboss/qa/brms/performance/profiler/MemoryConsumptionProfiler.java [47:72]
public Collection<? extends Result> afterIteration(BenchmarkParams benchmarkParams,
IterationParams iterationParams,
IterationResult result) {
if (!proceedWithMetrics.get()) {
return Collections.EMPTY_LIST;
}
final UsedMemory usedMemory;
try {
usedMemory = getUsedMemoryAfterSettling();
} catch (IllegalStateException ex) {
logger.error("{0} deactivated due to error during metrics recording.", getClass().getSimpleName(), ex);
return Collections.EMPTY_LIST;
}
final List<Result> results = new ArrayList<>();
final double usedHeap = bytesToKB(usedMemory.usedHeapMemory);
final double usedNonHeap = bytesToKB(usedMemory.usedNonHeapMemory);
final double total = bytesToKB(usedMemory.totalCommittedMemory);
final double metaSpace = bytesToKB(usedMemory.metaSpaceMemory);
results.add(new ScalarResult("mem.used.heap", usedHeap, "kB", AggregationPolicy.AVG));
results.add(new ScalarResult("mem.used.nonheap", usedNonHeap, "kB", AggregationPolicy.AVG));
results.add(new ScalarResult("mem.total", total, "kB", AggregationPolicy.AVG));
results.add(new ScalarResult("mem.used.metaspace", metaSpace, "kB", AggregationPolicy.AVG));
return results;
}