我有一个基于java的应用程序,它有大量的源代码(~1M).Now,我使用jenkins和sonar-runner-2.4一起运行代码覆盖率和测试用例计数的分析,我把声纳服务器从5.4升级到6.3.1.Before,升级到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
用于长期运行的任务的声纳-Project.properties:
发布于 2017-05-15 15:51:28
因为你没有给出很多细节,我不能在答案中给出很多细节,但简单的答案是,你必须让扫描做的工作更少。
看看你的代码库。您的扫描处理是否生成了类?是扫描测试课程吗?扫描类几乎没有真正的业务逻辑吗?如果你对其中任何一个回答“是”,考虑排除那些类。
看看您正在使用的SonarQube插件。你在运行所有你能运行的插件吗?是否有一些不需要运行的启发式方法,或者您可以减少运行频率?
https://stackoverflow.com/questions/43972324
复制相似问题