我有一个在大型 Java 项目中查找未使用(“死”)方法的想法,但我需要帮助来推导实现。
- 使用 AspectJ 为项目包中的所有方法添加“之前”方面。方面将简单地记录(?)该方法已被执行。
- 我编译了项目包中所有类/方法的列表(可能使用服务定位器/反射)。
- 建议的代码经过完整的回归测试。理想情况下,我也想将其投入生产一段时间(如果可以找到合适的性能解决方案)。
- 比较已执行的方法(步骤 1)和可用方法(步骤 2)的列表,得出所有从未调用过的方法(即死代码)的完整列表。
由于第 2 步和第 4 步可以离线进行,我真的只是在寻求第 1 步的帮助。
具体来说,如何记录方法何时执行?我想如果我尝试任何类型的内存存储,我很快就会遇到 OutOfMemoryErrors。同样,如果我将数据存储在数据库中/文件系统上,调用量可能会导致严重的性能问题。有没有人做过类似的事情?任何建议/建议表示赞赏。