考虑以下 java 代码:
for (Entity entity : entities) {
if(entity.getSubEntity().getField() == pField) {
return entity.getAnotherField();
}
}
如果实体
包含大量条目,则此代码可能会在生产环境中导致性能问题。如果仅使用小列表进行测试,测试可能无法发现问题。
我知道为该问题编写动态测试的可能性,但我正在寻找一种静态分析和查找该问题的潜在实例的方法,而无需手动查看代码库中的每个 for 循环。
我的问题是,如何在我的大型代码库中自动检测此问题的其他实例?
eclipse中有内置的还是插件的机制?
sonarqube中有针对这个问题的规则吗?可以编写自定义规则吗?
最佳答案
没有自动化工具可以找到像这样的“问题”,因为它不是问题:在代码中的数千个循环中,只有一两个循环可能最终会导致问题,具体取决于您处理的数据。
因此,您需要运行代码,听取反馈,并在识别出瓶颈后对代码运行分析器。手动。
关于java - 自动检测 Java 中存在潜在性能问题的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24491480/