Используя перехватчики событий MethodEntry
и MethodExit
, предоставляемые JVMTI, как мне измерить время выполнения метода в Java?
Проще говоря, это просто: time2 - time1
но проблема, которую я вижу, как различать разные методы? Есть methodID, но как насчет рекурсивных вызовов? Когда метод закрывается после его открытия?
Стоит ли сравнивать трассировку стека? Какова будет существенная структура данных для отслеживания методов, которые были введены? Что-то вроде Map<StackTrace,Time>?