Как использовать VisualVM для получения времени, которое стоит каждая функция [дубликат]
этот вопрос уже есть ответ здесь:
- Общее время метода в Java VisualVM 7 ответов
VisualVM-хороший, но немного сложный инструмент для меня.
Я написал класс со многими функциями (в Eclipse). Как я могу получить информацию о том, сколько раз каждая функция вызывает и сколько времени они стоят, когда во время казни?
4 ответов
посмотреть Профилирование С Помощью VisualVM, Часть 1 и Профилирование С Помощью VisualVM, Часть 2 для получения дополнительной информации о профилировании и настройке корней профилирования и фильтра инструментария.
Это на самом деле просто. Запустите программу, и она автоматически появится в виде запущенного процесса на панели VisualVM. Нажмите на него и перейдите прямо на вкладку Sampler. Finnaly, нажмите на CPU и бинго! Там вы можете увидеть, сколько времени занимает каждая функция! (круто!)
для исчерпывающего анализа необходимо использовать альтернативный инструмент, например JProfiler.
в соответствии с тем, что @TomasHurka говорит, что вы можете профилировать также с VisualVM (https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_1)
Это может быть немного полезными для вас..
используйте разницу во времени для вычисления выполнения, сделав метод возвращать что-то.
long before = System.currentTimeMillis();
String responseFromMethod=methodCall(); // String value returned from method
long totalResponseTime=((System.currentTimeMillis() - before )/1000);
вы можете сохранить значение счетчика, сколько раз функция вызывается.
для VisualVM вы можете использовать Eclipse MAT для анализа heapdump . Он объяснит, где ваша программа нуждается в доработке.
спасибо,