java - 自动检测 Java 中存在潜在性能问题的循环

标签 java eclipse performance performance-testing sonarqube

考虑以下 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/

相关文章:

database - 单独的应用程序和数据库服务器与一体机的性能

java - 用 Java 编写和比较日期

java - Android,带有按钮的图像和文本

java - Tomcat 无法在 Eclipse 中启动 - java.net.BindException : Address already in use

java - JSP 文件输出在更改后未更新 [Eclipse 内部 Web 浏览器问题]

python - 加快从列表创建 numpy 数组

java - JAR 版本依赖冲突 - Java

java - 远程方法调用(RMI)——服务器如何知道客户端调用了什么?

java - 在 Eclipse 中使用可运行的 Jar 文件时出现 FileNotFoundException 错误

javascript - Web 应用程序性能 : SVG, Canvas 或 Dom 操作