代码之家  ›  专栏  ›  技术社区  ›  Burjua

铿锵静态分析仪够了吗?

  •  4
  • Burjua  · 技术社区  · 16 年前

    我对iphone和objective-c的开发还不熟悉,我想问一下,Clang静态分析器是否足以消除内存泄漏?我个人发现xcode“Leaks”工具很难使用,而且我也看过一些文章,其中写道,即使没有任何真正的泄漏,它也总是会显示内存泄漏。

    你怎么认为? 非常感谢你。

    3 回复  |  直到 16 年前
        1
  •  2
  •   Lou Franco    16 年前

    如果您使用的是内置的构建和分析,那么您可以通过下载真正的扫描构建并打开所有检查来获得更好的结果

    http://www.loufranco.com/blog/files/scan-build-better-than-build-analyze.html

    但是,这还不够。您需要使用运行时分析检查泄漏。如果您遵循非常简单的alloc/retain/release规则,那么您可能会侥幸逃脱(或者离泄漏工具很近,因此泄漏工具变得更容易处理)。

        2
  •  3
  •   jer    16 年前

    不,不是。CSA是一个静态分析工具,这意味着它只能捕获在编译时可以推理的内容。为此,它也不是完美的,远远不是。它绝对不能代替仪器。然而,CSA可以帮助提醒您规则中的事情,以及其他潜在的问题。

        3
  •  1
  •   James    16 年前

    仪器,尤其是泄漏和内存分配工具是发现泄漏的好方法。内存分配工具可以帮助您找到泄漏无法发现的泄漏,因为它可以向您显示总体内存使用情况,如果您注意到它在上升,但在您完成任务后从未下降,您可以开始查找可能的泄漏。。。