美文网首页
07 | Clang、Infer 和 OCLint ,我们应该使

07 | Clang、Infer 和 OCLint ,我们应该使

作者: X先生_未知数的X | 来源:发表于2020-07-06 18:05 被阅读0次

    静态分析,这种可以帮助我们在编写代码的阶段就能及时发现代码错误,从而在根儿上保证工程质量的技术,就成为了iOS开发者最常用到的一种代码调试技术。
    1.Xcode 自带的静态分析工具 Analyze
    2.第三方静态编译器:OCLint、Infer、Clang静态分析器

    OCLint
    OCLint 是基于 Clang Tooling 开发的静态分析工具,主要用来发现编译器检查不到的那些潜在的关键技术问题。

    Clang 静态分析器
    Clang 静态分析器(Clang Static Analyzer)是一个用 C++ 开发的,用来分析 C、C++ 和 Objective-C 的开源工具,是 Clang 项目的一部分,构建在 Clang 和 LLVM 之上。Clang 静态分析器的分析引擎用的就是 Clang 的库。

    Infer 的工作流程图如下:

    image.png

    小结
    在今天这篇文章中,我和你一一分析了Clang 静态分析器、Infer和OCLint 这三个 iOS 静态分析工具。对于 iOS 的静态分析,这三个工具都是基于 Clang 库开发的。

    其中 Clang 静态分析器和 Xcode的集成度高,也支持命令行。不过,它们检查的规则少,基本都是只能检查出较大的问题,比如类型转换问题,而对内存泄露问题检查的侧重点则在于可用性。

    OCLint 检查规则多、定制性强,能够发现很多潜在问题。但缺点也是检查规则太多,反而容易找不到重点;可定制度过高,导致易用性变差。

    Infer 的效率高,支持增量分析,可小范围分析。可定制性不算最强,属于中等。

    综合来看,Infer 在准确性、性能效率、规则、扩展性、易用性整体度上的把握是做得最好的,我认为这些是决定静态分析器好不好最重要的几点。所以,我比较推荐的是使用 Infer 来进行代码静态分析。

    相关文章

      网友评论

          本文标题:07 | Clang、Infer 和 OCLint ,我们应该使

          本文链接:https://www.haomeiwen.com/subject/cnsgqktx.html