2013-06-05 1 views
-1

Я видел вашу нижнюю нить. Я также пытался сделать подобное, но не уверен, какой api даст лучший результат: может у вас спросить, какой из них вы использовали?Использование меток EventEntry и метокExit, предоставленных JVMTI, как бы я измерил время метода, выполняемого на Java?

Использование меток EventEntry и метокExit, предоставляемых JVMTI, как бы измерить время метода, выполняемого на Java?

Простыми средствами это просто: time2 - time1, но проблема, которую я вижу, как я различаю различные методы? Существует methodID, но как насчет рекурсивных вызовов? Когда метод закрыт после его открытия?

Должен ли я сравнивать трассировку стека? Какова была бы значимая структура данных для отслеживания методов, которые были введены? Что-то вроде Карты?

ответ

0

Использование событий MethodEntry и MethodExit для записи меток времени, вероятно, не очень хорошая стратегия, так как использование этих событий будет строго нарушить синхронизацию. Вы можете надеяться, что распределение будет равным для всех методов, и вы все равно можете получить относительное время, но я не уверен, что это правда.

Лучшей стратегией будет использование инструментария байт-кода для отслеживания этих событий.

Смежные вопросы