考虑以下java代码:
for (Entity entity : entities) {
if(entity.getSubEntity().getField() == pField) {
return entity.getAnotherField();
}
}
如果entities
包含大量条目,则此代码可能会在生产环境中导致性能问题。如果仅使用小列表进行测试,则测试可能无法找到问题。
我知道为问题编写动态测试的可能性,但我正在寻找一种静态分析和查找此问题的潜在实例的方法,而无需手动查看代码库中的每个for循环。
我的问题是,如何在我的大型代码库中自动检测此问题的其他实例?
eclipse,内置或插件中是否有机制?
对于这个问题,sonarqube有规则吗?是否可以编写自定义规则?
答案 0 :(得分:3)
没有像这样的“问题”的自动化工具,因为它不是问题:从代码中的数千个循环中,只有一两个可能最终导致问题,具体取决于您的过程数据。
因此,当您确定瓶颈时,您需要运行代码,听取反馈并在代码上运行探查器。手动