Как генерировать граф вызовов Java

Я хотел бы проанализировать и понять определенное приложение Java, и я думаю, что граф вызовов был бы очень полезен. Как я генерирую тот? Я использую Eclipse.

14
задан jcateca 13 June 2014 в 15:02
поделиться

5 ответов

Получение стека вызовов

1) Если можно отладка, приложение просто ставит точку останова (двойной щелчок мыши по левому краю кода) и ждет его остановки. Если Вас там нет, перейдите в Debug Perspective, и откройте Вид/Панель стека вызовов. В нем есть стек вызовов :)

2) Если вы хотите где-нибудь распечатать эту трассу стека, используйте Исключение:

Exception aux = new Exception("I'm here"); // not for throwing!
aux.printStackTrace(); // if you want it in stdout

или

Exception aux = new Exception("I'm here"); // not for throwing!
StringWriter sw = new StringWriter();
aux.printStackTrace(new PrintWriter(sw));
String result = sw.toString(); // if you want it in a string

Получение ссылок на метод

Вы можете получить все ссылки на метод, щелкнув правой кнопкой мыши, Ссылки, Рабочую область. Он будет искать все вызовы в ваших текущих открытых проектах. Очень полезно.

Профилирование приложения

(спасибо тем, кто ответил на опцию профайлера)

Eclipse TPTP предоставляет профилирование:

http://www.eclipse.org/tptp/home/project_info/general/whatisTPTP.php

14
ответ дан 1 December 2019 в 07:52
поделиться

Профилировщик бобов Netbeans очень хорош для этого !!!

Функции профилирования включают в себя процессор, профилирование памяти и потоков в качестве основного мониторинга JVM ...

Можно также использовать команду jconsole (часть jdk)

Она запускает инструмент графической консоли. что позволяет вам контролировать и управлять Java-приложения и виртуальные машины на локальной или удаленной машине.

4
ответ дан 1 December 2019 в 07:52
поделиться

Использование Eclipse Profiler может дать вам то, что вы хотите.

.
3
ответ дан 1 December 2019 в 07:52
поделиться

Быстро и грязно, создайте новое исключение и распечатайте стековую дорожку.

Exception e = new Exception();
e.printStackTrace();
2
ответ дан 1 December 2019 в 07:52
поделиться

Иногда я использую профилировщик Eclipse.

1
ответ дан 1 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: