优秀的内存分析、泄漏和错误检测工具,适用于Windows系统。

8
我目前正在寻找一款适用于Windows的好的内存/泄漏检测工具。几年前,我使用过Numega的Boundschecker,它非常好用。现在似乎已经被Compuware收购,而后者又将其转售给其他公司。
尝试评估当前版本的演示版迄今为止非常令人沮丧,符合最佳“企业风格”:
(a)网站上没有公布价格(警告的大红灯光);
(b)联系表格要求提供雇员数量和其他私人信息;
(c)对于我的询问,他们没有回应并提供演示版和价格。
我不得不得出结论:BoundsChecker现在是那种产品之一。你知道的,当你天真地打电话,明天会有三个穿着黑色西装的人来到你的建筑物,想和你谈论“合作伙伴关系”,并秘密地衡量你公司的规模,以此决定他们可以收取多少费用。
所以,抱怨归抱怨,有人能推荐一款优秀的内存检查/泄漏检测工具吗?它的价格是多少?还有哪里可以购买?

试试Deleaker - 它非常好。 - John Smith
5个回答

5

3
谨防Compuware的边界检查器: 它在某个程度上是稳定的。它的成本约为3600美元,每年维护费用大致相等。 但与Coverity相比,这只是小菜一碟。 在过去的3年里,我无法在Bounds Checker下运行好的测试。这就是为什么我不再使用它,也不建议你在大型企业应用程序中使用它,因为它太慢了,占用太多内存,并且会停止工作。我的意思是,你想让你的应用程序启动需要5分钟吗?你想让你的测试执行时间延长3倍吗?最糟糕的是,它有锁死的倾向。Compuware的客户支持非常有限。但是bounds checker已经被另一家公司(记不起他们的名字了)收购,他们的网站非常冷淡、干燥,甚至使金融公司的网站看起来更有趣。 但BoundsChecker的致命问题是它只支持32位。因此,如果您需要分析需要大量内存(超过1G)的大型应用程序,则只能放弃。Bounds Checker将从您的应用程序中占用2到3 G的内存。对于32位应用程序,您知道最高只能获得4G的内存。
如果您雇用一个人来照看它,Coverity是非常好的。严肃地说,Coverity的成本超过了我的房子。更不用说我们公司还必须雇佣一个人来照看这个鬼东西。它需要24小时才能完成它的工作。它并没有比在警告级别4下编译代码并打开“代码分析”(在Visual Studio中)做更多的魔术。
我尝试过其他内存泄漏工具(用于本机代码)。他们都太糟糕了,要么太复杂,要么就是老死机。 我对整个内存分析领域感到非常失望,我只想回到使用Debug CRT,或者自己编写代码。
至于代码覆盖工具,Bullseye无疑是最好的。为什么内存泄漏检测器不能像Bullseye一样稳定?

很遗憾,我只能添加的是“阿门”。 - cfischer
我也完全同意。即使支持64位应用程序,BoundsChecker仍然会锁定,需要10分钟才能启动我的非微小应用程序,并且有时无法实际找到(甚至是故意的!)内存泄漏。 - Brett
我现在才完全意识到1997年Compuware收购NuMega对这个产品造成的灾难。成为上市公司的一部分后,所有先前存在的产品都被放置在“维护”状态下,由较差的程序员来完成工作,因为公司试图找到新的销售产品(即没有人知道缺陷的产品),并在可能的情况下利用旧技术。 - Rick Papo
无论如何,只需要十分钟?这还不错,因为使用BoundsChecker的速度惩罚通常是没有使用编译器插桩时的80-100倍,而使用插桩则更多几倍。话虽如此,过去几个月我能够找到一些简单的问题来修复,这导致了在插桩下性能提高了30%。这些更改主要是消除由于有良好意图但信息不完整的开发人员引入的冗余。 - Rick Papo

2

微软的应用程序验证器工具非常擅长在Windows上检测泄漏以及其他常见的编程错误(如COM、堆、TLS、锁等)。

它在分析方面做得不太多,但是当您泄漏内存时,它会给出分配内存的堆栈,或者如果您重复释放内存,则会给出第一次释放内存的堆栈等。


2

我一直对AQTime非常满意,而且价格很优惠(并且非常透明 - 每个用户599美元)。

分配分析器运行得相当出色 - 它虽然不像Boundschecker那样复杂(从我记得的来看),但它做到的事情都做得很好 - 而且还可以处理许多其他问题。


1

这个帖子已经过时了。确实我们无法说服 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的问题,请访问我们的论坛http://community.microfocus.com/Forums/9_DevPartner。 - Rick Papo
截至2019年底,长期供应商ComponentSource或者其他任何人似乎都不再销售Bounds Checker / DevPartner,而在MicroFocus网站上任何尝试获取它的行为都只会导致一个通用的查询页面,要求您提供联系方式。他们的支持论坛仅包含一篇(从未回复)不到一年的帖子。因此,看起来这个长期的死亡螺旋终于结束了。 - Dave
由于并购活动而进行的公司内部重组,这似乎已经被忽略了。管理层正在努力解决这个问题。再次强调:我们的消亡报道被极度夸大了。DPS 12.0正在开发中,第一个测试版将在几天后发布(律师许可)。 - Rick Papo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接