[英]Tool for incremental static analysis of code?
是否有任何免费的工具允许对代码进行增量静态分析(对于SVN,最好是Git)? 目前我们正在使用Sonar(2.12我认为?)但问题是需要分析我们项目中所有代码的时间是40-60分钟。 我们需要增加它,因为我们有几个分支在不同的子项目上工作。
这就是为什么我正在寻找一种工具,可以只从最新的提交(据我所知的Sonar不支持)或仅在过去X小时/天/之内修改的代码分析代码。
我已经找到了Sonar的Cutoff插件,据说可以做我想要的(只检查文件中某个日期后修改过的代码),但是:
如果它只检查上次提交的代码,那将是完美的,但我还没有看到任何地方。
另外作为一个附带问题:在每次提交(即使用哈德森声纳插件)之后运行分析是好事还是应该避免? 在我的上一个团队,我们有声纳这样运行,如果我们“破坏它”我们会得到一个即时电子邮件(添加了代码的主要/关键)。 这非常方便,因为我们知道谁有错(基于提交的信息)。 或者我们应该更少地分析它(让我们说每周一次)? 在那种情况下,我将不得不检查Sonar是否能够说出谁犯了有问题的代码。
很少,特别是因为许多工具/规则依赖于走可能的堆栈以限制误报的数量。 因此,一个组件的更改也需要重新评估调用组件,它不像从外部看起来那么简单。
要加速静态分析,请考虑投资内存磁盘或SSD来存储源和二进制文件。 使用多核机器,有足够的内存并尽可能运行这些工具的x64版本。 其中许多工具首先是I / O,然后是CPU限制。 通过减少系统的延迟和吞吐量以及所需的交换量(通过具有足够的内存)来进一步减少I / O,可以找到大多数改进。
您还可以在构建服务器上使用伙伴构建/验证搁置集构建,以将构建时间卸载到可在开发人员之间共享的其他计算机上。
我意识到我迟到了,但还有另一种可能与你相关的工具: Teamscale
Teamscale连接到您的存储库(例如Git或SVN)并在每次提交后立即逐步分析您的代码。 有了这个,您几乎可以在提交后立即获得有关新/固定代码问题的反馈。 您还可以查看代码的完整历史记录,黑名单误报等等。 (完全披露:我是Teamscale开发人员)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.