У меня есть идея найти неиспользуемые («мертвые») методы в большом Java-проекте, но мне нужна помощь в реализации.
- Используйте AspectJ, чтобы добавить аспект «до» ко ВСЕМ методам в пакетах проектов. Аспект просто запишет (?), Что метод был выполнен.
- Я составляю список всех классов / методов в пакетах проекта (возможно, используя локатор / отражение сервисов).
- Рекомендуемый код подвергается полному регрессионному тесту. В идеале я бы тоже хотел на время запустить это в производство (если удастся найти подходящее решение).
- Списки выполненных методов (шаг 1) и доступных методов (шаг 2) сравниваются, что дает исчерпывающий список всех методов, которые никогда не вызывались (т. Е. Мертвый код).
Поскольку шаги 2 и 4 можно выполнять в автономном режиме, мне действительно нужна помощь только по шагу 1.
В частности, как я могу записать, когда метод выполняется? Я полагаю, что довольно скоро столкнусь с OutOfMemoryErrors, если попытаюсь использовать какое-либо хранилище в памяти. Точно так же, если я храню данные в базе данных / в файловой системе, объем вызовов может вызвать серьезные проблемы с производительностью. Кто-нибудь когда-нибудь делал что-нибудь подобное? Любые советы / предложения приветствуются.