【问题标题】:Good memory profiling, leak and error detection for Windows适用于 Windows 的良好内存分析、泄漏和错误检测
【发布时间】:2010-10-31 17:30:20
【问题描述】:

我目前正在为 Windows 寻找一个好的内存/泄漏检测工具。几年前,我用过 Numega 的 Boundschecker,非常好。现在好像已经 卖给了 Compuware,后者显然又把它卖给了其他公司。

迄今为止,按照最好的“企业”传统,尝试评估当前版本的演示非常令人沮丧:

(a) 在他们的网站上没有广告价格(大红色闪烁警告灯);
(b) 要求提供员工人数和其他私人信息的联系表;
(c) 没有回复我要求评估和价格的电子邮件。

我不得不得出结论,BoundsChecker 现在是“那些”产品之一。你知道,你天真地打电话的类型,明天3个黑西装的男人会出现在你的面前 大楼希望与您讨论“合作伙伴关系”,并且不那么秘密地衡量您公司的规模,因此他们可以向您收取多少费用。

所以,除了咆哮,谁能推荐一个优秀的内存检查/泄漏检测工具,它的成本是多少,以及在哪里购买的建议?

【问题讨论】:

  • 试试 Deleaker - 它也非常好。

标签: debugging memory-leaks profiling bounds-checker


【解决方案1】:

你可以试试Memory Validator。您也可以尝试相同的评估副本。

Licensed version prices

【讨论】:

    【解决方案2】:

    注意 Compuware 的边界检查器: 它在一定程度上是稳定的。它的成本约为 3600 美元,每年的维护费用也差不多。 但与 Coverity 相比,这简直是小菜一碟。 在过去的 3 年里,我没有在 Bounds Checker 下进行良好的测试。这就是为什么我不再使用它,以及为什么我不建议您使用它,除非是在小型项目中。在大型企业应用程序上,它太慢了,占用了太多内存,而且根本停止工作。我的意思是,您真的希望您的应用程序需要 5 分钟才能启动吗?您希望您的测试执行时间延长 3 倍吗?最糟糕的是,它倾向于锁定。 Compuware 的客户支持非常有限。但是边界检查器被卖给了另一家公司(不记得他们的名字),其网站非常无菌、消毒和干燥,这让金融公司的网站看起来很有趣。 但是 BoundsChecker 的致命问题是它只有 32 位。因此,如果您需要分析一个占用大量内存(超过 1 Gig)的大型应用程序,那您就完全不走运了。 Bounds Checker 将从您的应用程序中占用 2 到 3 Gigs 的内存。对于 32 位应用程序,您很清楚 4 Gigs 是您所获得的最高水平。

    如果您雇用一个人来照看它,那么保障性就很好。说真的,Coverity 比我的房子贵。更不用说我公司雇用的人来照顾这该死的东西了。它需要24小时才能做到这一点。它并没有比简单地在警告级别 4 编译代码并打开“代码分析”(在 Visual Studio 中)更神奇。

    我尝试过其他内存泄漏工具(用于本机代码)。他们都糟透了,太复杂了,或者只是简单地锁定了系统。 我对整个内存分析器领域感到非常厌恶,我只想回到使用调试 CRT 的方法。或者只是写我自己的。

    至于代码覆盖工具,Bullseye 胜出。为什么内存泄漏检测器不能像靶心一样可靠地工作?

    【讨论】:

    • 不幸的是,我唯一能补充的就是阿门。
    • 我也同意 1000%。即使支持 64 位应用程序,BoundsChecker 仍然会锁定,需要 10 分钟才能启动我的非小型应用程序,并且有时无法实际发现(甚至是故意的!!!)内存泄漏。
    • 我现在才完全意识到 1997 年 Compuware 收购 NuMega 是一场灾难(对于这个产品)。成为上市公司的一部分后,所有以前存在的产品都被置于“维护”状态,较少的程序员在做这项工作,因为公司试图找到方法来制造新的东西(也就是没人知道的疣)来销售,利用尽可能使用较旧的技术。
    • 无论如何,只有十分钟?这还不错,因为在不使用编译器检测时,使用 BoundsChecker 的速度损失通常是 80-100 倍,是使用检测的几倍。也就是说,在过去的几个月里,我能够找到一些简单的问题来修复,从而使仪器的性能提高了 30%。这些变化主要是消除了由善意但不完全知情的开发人员引入的冗余。
    【解决方案3】:

    Microsoft 的 Application Verifier 工具非常擅长检测泄漏以及 Windows 上的许多其他常见编程错误(COM、堆、TLS、锁等)。

    它在分析方面并没有做太多的事情,但它会给你当你泄漏它时分配内存的堆栈,或者如果你双重释放它第一次被释放的堆栈等。

    【讨论】:

      【解决方案4】:

      我对@9​​87654321@ 相当满意,而且价格难以超越(而且非常透明 - 599 美元/用户)。

      分配分析器工作得相当好 - 它不像 Boundschecker 那样复杂(根据我对 Boundschecker 的记忆),但它的作用却很好 - 它还可以处理很多其他事情。

      【讨论】:

        【解决方案5】:

        这个帖子已经过时了。确实,我们无法说服 Micro Focus 在其主网站上发布价格,但您可以在 ComponentSource 上获取价格,而且我们不会派出穿着深色西装和色调的代理商 8-/ 定价取决于关于您是要求单用户许可证还是多用户许可证,以及您是否只想要 BoundsChecker,或者您想要所有 DevPartner Studio。详情请见ComponentSource Listing

        无论如何,我们并没有停止对产品的开发。 2 月 4 日,我们发布了 10.5 版本,它(最终)支持 Vista 和 Windows 7 上的 64 位应用程序(AMD64、Intel64,而不是 Itanium)。在此过程中修复了很多旧错误。下一次更新将包括对 XP64 和 Windows 7 SP1 以及 Visual Studio 2010 SP1 的支持。

        【讨论】:

        • 如果有人对 Micro Focus DevPartner Studio 或 BoundsChecker 有任何疑问,请访问我们的论坛community.microfocus.com/Forums/9_DevPartner
        • 截至 2019 年底,Bounds Checker / DevPartner 不再由长期供应商 ComponentSource 或显然其他任何人在 MicroFocus 网站上出售,任何尝试获取它只会导致通用查询页面询问您的联系方式,他们的支持论坛只包含一个不到一年的帖子(从未回复过)。所以看起来漫长的死亡螺旋终于结束了。
        • 由于并购活动,目前公司内部正在进行所有重组,这似乎已经落空。管理层正在努力解决这个问题。再说一遍:关于我们灭亡的报道被大大夸大了。 DPS 12.0 正在开发中,第一个测试版将在几天后发布(律师允许)。
        猜你喜欢
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 2021-11-30
        • 2012-10-28
        • 1970-01-01
        • 2023-03-19
        • 2011-03-29
        • 2012-07-16
        相关资源
        最近更新 更多