jenkins - 如何加快 Sonar 分析工作?

标签 jenkins sonarqube code-analysis static-analysis sonarqube-scan

我有一个基于 Java 的应用程序,它有大量的源代码(~1m)。现在我正在使用 Jenkins sonar-runner-2.4使用代码覆盖率和测试用例计数运行分析。我已经从 5.4 升级了 sonarqube 服务器至 6.3.1 .在升级之前这项工作花了9hrs完成整个分析(仍然很长但很好)但升级到sonarqube-6.3.1后同样的工作13hrs完成相同的分析。

我如何至少在早期时间缩短分析时间 9hr ?

编辑

这是我的 JAVA_OPTSsonarqube-6.3.1实例

sonar.web.javaOpts=-Xmx6G -Xms2G -XX:MaxPermSize=1G -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true

可用硬件 :

$lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 26 Stepping: 5 CPU MHz: 1596.000 BogoMIPS: 3999.44 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 4096K NUMA node0 CPU(s): 0-3 NUMA node1 CPU(s): 4-7
可用内存 :$free -m total used free shared buff/cache available Mem: 128714 58945 66232 430 3535 68298 Swap: 32767 957 31810
sonar-project.properties 用于长期运行的工作:

sonar-project.properties

最佳答案

由于您没有真正提供很多细节,我无法在答案中提供很多细节,但简单的答案是您必须使扫描工作量减少。

看看你的代码库。您的扫描处理是否生成类?是扫描测试类吗?是扫描几乎没有真正业务逻辑的类吗?如果您对其中任何一个回答"is",请考虑排除这些类(class)。

查看您正在使用的 SonarQube 插件。您是否正在运行可以运行的所有可能的插件?是否有一些您不需要运行的启发式方法,或者您可以不那么频繁地运行?

关于jenkins - 如何加快 Sonar 分析工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43972324/

相关文章:

algorithm - 什么是 "naive"算法,什么是 "closed - form"解法?

jenkins 每晚构建期间 JavaScript 解析错误。 Sonar 升级到4.3.2后

javascript - PhantomJS:无法在描述中进行设置/拆卸

jenkins - 在 Jenkins 中聚合下游参数化作业的结果

postgresql - 如何在 Postgresql 中备份和恢复 Sonarqube 数据库

java - SonarQube 无法启动

visual-studio - 您可以将VS2008代码分析配置为使用英式英语词典吗?

jenkins - 使用kubernetes yml文件时如何在gradle中处理环境替换?

SonarQube for MSBuild - 结束分析失败

c# - 在 Roslyn 中解析参数类型