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