Как я могу использовать для расчета количества процессорного времени и памяти в JMH? Например, у меня есть: Код:
@State(Scope.Thread)
@BenchmarkMode(Mode.All)
public class JMHSample_My {
int x = 1;
int y = 2;
@GenerateMicroBenchmark
public int measureAdd() {
return (x + y);
}
@GenerateMicroBenchmark
public int measureMul() {
return (x * y);
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(".*" + JMHSample_My.class.getSimpleName() + ".*")
.warmupIterations(5)
.measurementIterations(5)
.forks(1)
.build();
new Runner(opt).run();
}
}
Результат:
Benchmark Mode Samples Mean Mean error Units
JMHSample_My.measureAdd thrpt 5 1060579.757 39506.950 ops/ms
JMHSample_My.measureMul thrpt 5 1046872.684 79805.116 ops/ms
JMHSample_My.measureAdd avgt 5 0.000 0.000 ms/op
JMHSample_My.measureMul avgt 5 0.000 0.000 ms/op
JMHSample_My.measureAdd sample 9549793 0.000 0.000 ms/op
JMHSample_My.measureMul sample 9287002 0.000 0.000 ms/op
JMHSample_My.measureAdd ss 5 0.001 0.000 ms
JMHSample_My.measureMul ss 5 0.001 0.000 ms
Я вижу количество запросов на время, среднее время теста, но не вижу среднее количество загрузки ЦП и использование памяти. Это можно сделать с помощью JMH?
HotspotMemoryProfiler.class
иGCProfiler.class
не помогло. Единственная метрика, которую я получил, этоops/sec
- person asgs   schedule 21.05.2017sun.gc.generation.0.space.0.used
- person asgs   schedule 21.05.2017