我有一个基于 Java 的应用程序,它有大量的源代码(~1m)。现在我正在使用 Jenkins 与 sonar-runner-2.4使用代码覆盖率和测试用例计数运行分析。我已经从 5.4
升级了 sonarqube 服务器至 6.3.1
.在升级之前这项工作花了9hrs
完成整个分析(仍然很长但很好)但升级到sonarqube-6.3.1
后同样的工作13hrs
完成相同的分析。
我如何至少在早期时间缩短分析时间 9hr
?
编辑
这是我的 JAVA_OPTS
为 sonarqube-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/