Я ищу «что-то», которое может измерять время выполнения, если мой java-код. Я знаю, что могу сделать это с интенсивным использованием System.nanoTime() и подобных вещей, но мне нужно что-то более продвинутое.Измерение времени выполнения Java
Вот что я хочу сделать
gate.start("request");
gate.start("dbstuff");
doDbStuff();
gate.stop("dbstuff");
gate.start("businesslogic");
doSomeSimpleStuff();
for (int i = 0; i < 100; i++) {
gate.start("complexeAlgorithm"); // sum the 100 cycles
doComplexeAlgorithm();
gate.stop("complexeAlgorithm");
}
gate.stop("businesslogic");
gate.stop("request");
Выход должен быть чем-то вроде этого
request 3.000 ms
+ dbstuff 700 ms
+ businesslogic 2.100 ms
+ complexeAlgorithm 300 ms
+ rest 1.800 ms
+ rest 200 ms
Это «что-то» может быть основой или инструментом JVM или что-нибудь, что помогает мне найти моих убийц. Какие-либо предложения?