我有一个基于java的应用程序,它有大量的源代码(~1m)。现在我使用 jenkins 和sonar-runner-2.4来运行分析代码覆盖率和测试用例数量我已经将sonarqube服务器从5.4
升级到6.3.1
。在升级之前,这个工作花了9hrs
来完成整个分析(仍然是很长时间但很好)但升级到{ {1}} sonarqube-6.3.1
同样的工作完成相同的分析。
如何至少在早期时间13hrs
改善分析时间?
修改
以下是9hr
实例的JAVA_OPTS
sonarqube-6.3.1
可用硬件:
$ lscpu
sonar.web.javaOpts=-Xmx6G -Xms2G -XX:MaxPermSize=1G -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true
可用内存:
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
sonar-project.properties:
答案 0 :(得分:1)
由于您没有真正提供过许多细节,我无法在答案中提供许多细节,但简单的答案是您必须使扫描工作更少。
查看您的代码库。您的扫描处理是否生成了类?是扫描测试类吗?它是否扫描几乎没有真正业务逻辑的类?如果你回答"是"对于其中任何一个,请考虑排除这些类别。
查看您正在使用的SonarQube插件。您是否正在运行可以运行的每个可能的插件?是否有一些你不需要运行的启发式算法,或者你可能不那么频繁地运行?