Существует ли инструмент покрытия кода Java, который записывает количество вызовов строк и методов? - PullRequest
5 голосов
/ 21 февраля 2012

Надеюсь, название описывает то, что я после.Самое близкое, что я нашел, это Cobertura , который выглядит так, как будто он будет записывать количество раз, которое вызывается данная строка кода, но я ничего не нашел, чтобы подсчитать, как часто вызывается метод.

Ответы [ 6 ]

1 голос
/ 21 февраля 2012

VisualVM (входит в Sun / Oracle JDK) может сделать это для вас.

Из раздела «Профилирование ЦП» документа Приложения для профилирования :

Эта команда профиля возвращает подробные данные о производительности ЦП на уровне метода (время выполнения), показывая общее время выполнения и количество вызовов для каждого метода.

1 голос
/ 21 февраля 2012
1 голос
/ 21 февраля 2012

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

1 голос
/ 21 февраля 2012

Доступны плагины, если вы используете IDE, например, eclipse. Проверьте это: - http://www.eclipse.org/articles/Article-TPTP-Profiling-Tool/tptpProfilingArticle.html

0 голосов
/ 29 февраля 2012

Наш Java (Counting) Profiler очень близко подходит к тому, чего хочет OP.

Подсчитывает записи в каждом базовом блоке в коде Java; это включает точки входа метода и любые вспомогательные блоки для управления операторами (если, while, try, ...). Это дает тот же эффективный результат, что и подсчет числа выполнений отдельных «строк» ​​(не уверен, что это означает точно в Java-программе, но мы это допустим) со значительно меньшими накладными расходами.

Данные подсчета могут рассматриваться как данные покрытия; ненулевое значение означает «покрытый».

0 голосов
/ 21 февраля 2012

Если код работает постоянно, вы всегда можете просто реализовать статическую переменную и считать ее самостоятельно.

...