2012-02-06 5 views
3

Есть ли подключаемый модуль Eclipse или какой-либо другой инструмент или метод, который будет искать весь проект Java (и/или всю рабочую область) и показывать (в списке/отсортированном формате) частоту вызова всех публичных методов в проекте? Это «какой код использует какой-то другой код» больше всего?Найти наиболее часто используемые методы Java в рабочей области Eclipse

Я очень хорошо знаком с использованием CTRL-SHIFT-G или CTRL-G; используйте его все время. Я также знаком с представлением иерархии вызовов. Результат, который я ищу может быть описан как делать Поиск> Ссылки> Workspace (CTRL-SHIFT-G) на каждый метод в каждый класс в рабочем пространстве и подведение/подсчетом количества результатов каждый раз, с окончательным, сортируемым выходом, как в примере ниже.

Понятие, приведенное выше, состоит в том, чтобы получить представление о том, какие классы/методы используются наиболее часто (не во время выполнения, в этом вопросе «используется»! = «Выполнено»), чтобы определить приоритетность модульного тестирования на очень большой проект. Я хочу начать использовать JUnit больше (больше, чем не все, то есть), и идея поиска наиболее используемых методов казалась хорошим местом для начала.

Например, если три класса, ClassA, ClassB и ClassC, я хотел бы резюме, похожее на это:

 
    Method          Number of calls 
    ClassB.methodThatDoesSomethingMundane()     134 
    ClassC.methodThatDoesCoolStuff()       78 
    ClassC.methodThatDoesImportantThing()      71 
    ClassA.constructor()          63 
    ClassB.aDifferentBoringMethod()       37 
    ClassA.getSomething()          19 
    ... etc ... 
+1

Определить * используя *. Вы хотите найти это? Вы имеете в виду, что код чаще всего вызывает конкретный класс/метод? Какие? – adarshr

+0

Я бы начал с самых важных, самых хрупких вещей. –

+0

@PattMauler: * (не ответ, следовательно, комментарий) * ... Я определенно помню инструменты «покрытия кода», которые делают именно это. Теперь, когда типичный инструмент «охвата кода» показывает только, прошел ли какой-либо «запуск» или нет, я на 99,9% уверен, что видел инструменты покрытия кода, также показывающие, как часто эти методы вызывались. Я давно не использовал инструменты покрытия кода, которые говорили ... – TacticalCoder

ответ

1

Вы можете использовать профайлер (например VisualVM, jvisualvm.exe в JDK/bin/folder).

2

JArchitect, коммерческий продукт, кажется, интересный metrics module:

Метод Оценка: значения MethodRank вычисляется путем применения алгоритма PageRank Google на графике зависимостей методы. Гомотетичность центра 0,15 применяется, чтобы сделать его таким, чтобы среднее значение MethodRank равнялось 1.

Рекомендации: Методы с высоким MethodRank следует более тщательно тестировать, потому что ошибки в таких методах, скорее всего, будут более катастрофическими.

Я не тестировал его, но стоит попробовать.

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

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – gnat

+1

Ты абсолютно прав! Я отредактировал свой ответ. –

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