适用于 Windows 的良好内存分析、泄漏和错误检测
我目前正在为 Windows 寻找一个好的内存/泄漏检测工具。 几年前,我使用过 Numega 的 Boundschecker,它非常好。 现在看来已经是 卖给了 Compuware,后者显然又把它卖给了其他一些公司。
到目前为止,尝试评估当前版本的演示非常令人沮丧,这符合最佳的“企业”传统:
(a)他们的网站上没有广告价格(大红色闪烁警告灯);
(b) 要求提供雇员人数和其他私人信息的联系表;
(c) 我询问评估和价格的电子邮件没有得到回复。
我不得不得出结论,BoundsChecker 现在是“那些”产品之一。 你知道吗,就是那种你天真地打电话,明天就会有 3 个穿黑西装的男人出现在你的房间里。 大楼想要与您谈论“合作伙伴关系”,并且不那么秘密地衡量您公司的规模,以及因此他们可以向您收取多少费用。
那么,除了咆哮之外,任何人都可以推荐一个优秀的内存检查/泄漏检测工具,它的价格是多少,以及在哪里购买的建议?
I'm currently looking for a good memory / leak detection tool for Windows. A few years ago, I used Numega's Boundschecker, which was VERY good. Right now it seems to have been
sold to Compuware, which apparently sold it again to some other company.
Trying to evaluate a demo of the current version has been so far very frustrating, in the best "enterprisy" tradition:
(a) no advertised prices on their website (Great Red Flashing Lights of Warning);
(b) contact form asked for number of employeers and other private information;
(c) no response to my emails asking for a evaluation and price.
I had to conclude that BoundsChecker is now one of "those" products. Y'know, the type where you innocently call and tomorrow 3 men in black suits turn up at your
building wanting to talk to you about "partnerships" and not-so-secretly gauge the size of your company and therefore how much they can get away with charging you.
SO, rant aside, can anyone recommend an excellent memory checking/leak detection tool, how much it costs, and suggestions for where to buy?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以尝试内存验证器。 您也可以尝试相同的评估副本。
授权版本价格
You can try Memory Validator. You can try the evaluation copy of the same as well.
Licensed version prices
当心 Compuware 的边界检查器:
在一定程度上它是稳定的。 它的成本约为 3600 美元,每年的维护费用也大致相同。
但与 Coverity 相比,这只是微不足道的。
在过去的 3 年里,我还没有在 Bounds Checker 下进行良好的测试运行。 这就是为什么我不再使用它,也是为什么我不建议你使用它,除了小型项目。 在大型企业应用程序上,它速度太慢,占用太多内存,并且根本停止工作。 我的意思是真的,您希望您的应用程序需要 5 分钟才能启动吗? 您是否希望测试执行时间延长 3 倍? 最糟糕的是,它很容易被锁定。 Compuware 的客户支持非常有限。 但bounds checker被卖给了另一家公司(不记得他们的名字了),该公司的网站是如此的冷漠、无菌和干燥,这使得金融公司的网站看起来很有趣。
但 BoundsChecker 的致命问题是它只有 32 位。 因此,如果您需要分析需要大量内存(超过 1 Gig)的大型应用程序,那么您就运气不好了。 Bounds Checker 会占用您应用程序中 2 到 3 G 的内存。 对于 32 位应用程序,您很清楚 4 Gigs 是您获得的最高值。
如果你雇一个人来照看它,那么覆盖性就很棒。 说实话,Coverity 比我的房子还贵。 更不用说我的公司会雇佣一个人来照顾这个该死的东西。 需要24小时才能发挥它的魔力。 它并没有比简单地在警告级别 4 下编译代码并打开“代码分析”(在 Visual Studio 中)更神奇的事情。
我尝试过其他内存泄漏工具(对于本机代码)。 它们都太糟糕了,太复杂了,或者只是普通的旧系统锁定了系统。
我对内存分析器的整个领域感到非常厌恶,所以我只想回到使用调试 CRT。 那或者只是我自己写的。
至于代码覆盖率工具,Bullseye 轻而易举地获胜。 为什么内存泄漏检测器不能像靶心一样可靠地工作?
Beware of Compuware's bounds checker:
It is stable up to a point. It costs about 3600 dollars, and about an equal amount to maintain from year to year.
But that is peanuts compared to Coverity.
I haven't gotten a good test run to work right under Bounds Checker for the last 3 years. That is why I don't use it anymore, and why I don't recommend you use it, except on small, tiny projects. On big enterprise apps, it's just too slow, takes up too memory, and simply stops working. I mean really, do you want your application to take 5 minutes to boot? Do you want your test executions to take 3 times longer? Worst of all, is it's tendency to just lock up. Customer support from Compuware was pretty limited. But bounds checker was sold to another company (can't remember their name) whose website is so aniceptic, sterilized and dry, it makes financial company websites look entertaining.
But the killer problem with BoundsChecker is it is 32 bit only. So if you need to profile a large application that takes lots of memory (More than 1 Gig), you are simply out of luck. Bounds Checker will eat up 2 to 3 Gigs of memory from your app. And with 32 bit apps, you well know that 4 Gigs is the tops you get.
Coverity is great if you hire a person to babysit it. Seriously Coverity costs more than my house. That's not to mention the person my company would have too hire to babysit the dang thing. It takes 24 hours to do it's magic. And it doesn't do all that much more magic than simply compiling your code at warning level 4, and turning on 'Code Analysis' (In visual studio).
I've tried other memory leak tools (for native code). They all SUCK big time, are too complicated, or just plain old lock up the system.
I'm so disgusted with the entire field of memory profilers, that I just want to go back to using the debug CRT. That or just write my own.
As for code coverage tools, Bullseye wins hands down. Why can't a memory leak detector just work as solidly as bullseye?
Microsoft 的应用程序验证程序 该工具非常擅长检测泄漏以及 Windows 上的许多其他常见编程错误(COM、堆、TLS、锁等)。
它在分析方面没有做太多事情,但它会为您提供泄漏内存时分配内存的堆栈,或者如果您双重释放则提供第一次释放内存的堆栈,等等。
Microsoft's Application Verifier tool is very good at detecting leaks as well as a bunch of other common programming mistakes on Windows (COM, heaps, TLS, locks, etc).
It doesn't do so much in the way of profiling, but it will give you the stack of where the memory was allocated when you leak it, or the stack where it was free'd the first time if you double free, etc.
我对 AQTime 相当满意,而且价格很难被击败(而且非常透明 - 599 美元/用户)。
分配分析器工作得相当好 - 它不像 Boundschecker 那么复杂(根据我对 Boundschecker 的记忆),但它所做的,它做得很好 - 并且它还处理很多其他事情。
I've been fairly happy with AQTime, and the pricing is tough to beat (and very transparent - $599/user).
The allocation profiler works fairly well - it's not quite as sophisticated as Boundschecker (from what I remember of Boundschecker), but what it does, it does well - and it handles quite a few other things, too.
该线程已经过时了。 确实,我们无法说服 Micro Focus 在其主网站上公布价格,但您可以在 ComponentSource 上获取价格,而且我们不会派出穿着深色西装和深色衣服的代理商 8-/ 定价取决于关于您是否需要单用户许可证还是多用户许可证,以及您是否只需要 BoundsChecker,还是需要整个 DevPartner Studio。 请参阅组件源列表
不管怎样,我们并没有停止对产品的开发。 2 月 4 日,我们发布了 10.5 版本,它(最终)支持 Vista 和 Windows 7 上的 64 位应用程序(AMD64、Intel64,而不是安腾)。在此过程中修复了相当多的旧错误。 下一个更新将包括对 XP64 和 Windows 7 SP1 以及 Visual Studio 2010 SP1 的支持。
This thread is way out of date. It is true that we haven't been able to convince Micro Focus to post prices out on their main web site, but you can get prices on ComponentSource, and we don't send out agents in dark suits and shades 8-/ Pricing depends on whether you are asking for a single user or multiple user license, and whether you want just BoundsChecker, or you want all of DevPartner Studio. See ComponentSource Listing for details.
Anyway, we've not stopped working on the product. On February 4th, we released version 10.5, which (finally) supports 64-bit applications (AMD64,Intel64, not Itanium) on Vista and Windows 7. Quite a few old bugs were fixed along the way. The next update will include support for XP64 and Windows 7 SP1, as well as Visual Studio 2010 SP1.