首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码增量静态分析工具?

代码增量静态分析工具?
EN

Stack Overflow用户
提问于 2012-01-10 16:09:57
回答 3查看 1.6K关注 0票数 5

是否有任何免费的工具允许对代码进行增量静态分析(对于SVN,最好是Git)?目前我们使用的是声纳(我认为是2.12?)但问题是,分析我们项目中的所有代码所需的时间是40-60分钟。我们需要把它乘以,因为我们有几个分支在不同的子项目上工作。

这就是为什么我正在寻找一个工具,它可以只从最近的提交(据我所知Sonar不支持)分析代码,或者只分析在过去的X小时/天/任何情况下修改过的代码。

我找到了Sonar的截止插件,据说它可以做我想做的事情(只检查在某个日期后修改的文件中的代码),但是:

  1. 我还需要检查它是否有效
  2. 检查它是否支持动态日期更改(因此它将只考虑最后一天的代码,而不需要每天手动更改排除日期)。
  3. 它似乎没有得到很好的支持(上一次修改是在2010年,它仍然在0.1版中)

如果它只检查上一次提交时的代码,那就太完美了,但我还没有看到。

还有一个附带的问题:每次提交后运行分析(即使用hudson插件)是一件好事还是应该避免?在我的上一个团队,我们有这样的声纳运行,如果我们“弄坏了它”,我们会收到一封即时的电子邮件(添加了一个重要/关键的代码)。这非常方便,因为我们知道谁是错误的(根据来自提交的信息)。或者我们应该减少分析的频率(比方说每周一次)?在这种情况下,我必须检查Sonar是否能够说出是谁提交了有问题的代码。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-19 11:33:19

很少,特别是因为很多工具/规则依赖于遍历可能的堆栈来限制错误阳性的数量。因此,一个程序集中的更改也需要对调用程序集进行重新评估,这并不像从外部看上去那么简单。

要加快静态分析的速度,请考虑投资于内存磁盘或SSD来存储源和二进制文件。使用多核机器,拥有足够的内存,并尽可能运行这些工具的x64版本。许多这些工具首先是I/O,然后是CPU限制。大多数改进可以通过减少系统的延迟和吞吐量以及需要的交换量(通过拥有足够的内存)来进一步减少I/O。

您还可以使用构建服务器上的伙伴构建/验证搁置集构建将构建时间卸载到不同的机器上,这些机器可以在开发人员之间共享。

票数 3
EN

Stack Overflow用户

发布于 2012-01-19 13:57:14

还有一些静态分析工具,如:

  1. PMD
  2. 格子式
  3. FindBugs

很有可能你会发现它对声纳有用的替代。

您没有提到是否使用持续集成工具。您可能需要启动并运行它,以便使用这些工具来运行检查。

票数 0
EN

Stack Overflow用户

发布于 2017-05-06 12:22:32

我意识到我去派对迟到了,但还有另一个可能与你相关的工具:团队标尺

Teamscale连接到存储库(例如Git或SVN),并在每次提交之后增量地分析代码。这样,您几乎在提交后立即得到有关新的/固定代码问题的反馈。您还可以看到您的代码的完整历史,黑名单假阳性,等等。(完全披露:我是一个团队规模的开发人员)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8806445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档