Я хотел бы проанализировать и понять определенное приложение Java, и я думаю, что граф вызовов был бы очень полезен. Как я генерирую тот? Я использую Eclipse.
Получение стека вызовов
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
Профилировщик бобов Netbeans очень хорош для этого !!!
Функции профилирования включают в себя процессор, профилирование памяти и потоков в качестве основного мониторинга JVM ...
Можно также использовать команду jconsole (часть jdk)
Она запускает инструмент графической консоли. что позволяет вам контролировать и управлять Java-приложения и виртуальные машины на локальной или удаленной машине.
Использование Eclipse Profiler может дать вам то, что вы хотите.
.Быстро и грязно, создайте новое исключение и распечатайте стековую дорожку.
Exception e = new Exception();
e.printStackTrace();