Как использовать VisualVM для получения времени, которое стоит каждая функция [дубликат]

этот вопрос уже есть ответ здесь:

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 . Он объяснит, где ваша программа нуждается в доработке.

спасибо,