检测内存泄漏的最佳工具是什么?
既是免费的也不是免费的。
谢谢
发布于 2009-01-06 20:53:17
我们在Delphi7中使用EurekaLog,它是一个异常处理组件,提供了异常的详细信息(包括callstack!环境变量等)。但另一个很棒的特性是,你也可以在内存泄漏时告诉它出错,这会显示内存/对象最初被分配的确切代码行!这是一个商业产品,但我仍然强烈推荐它。
发布于 2009-01-06 10:50:30
FastMM是一个免费的(源代码可用)内存泄漏检测器,已经集成在最新的Delphi版本中。我再也不需要别的东西了。
BTW在编码时限制内存泄漏的可能性要好得多,而不是稍后才发现它们。一些小贴士:
总是在你的代码中使用try和finally来释放创建的对象。最好立即编写这段代码,然后再编写代码来使用这些对象。更好的做法是使用IDE功能,如代码模板。
只有在绝对必要时才使用返回动态分配对象的函数。通常,将对象作为参数传递要比创建并返回它们更好。举个例子
procedure getChoices(var AChoices: TStrings);会好得多
function getChoices: TStrings;因为不存在意外泄漏所创建的TStrings对象的可能性。
发布于 2009-01-06 11:04:12
AQTime非常好。它还可以做其他事情,比如分析性能。而且它不需要对您的代码进行任何更改。当然,使用debug info进行编译有助于获得更好的结果。
https://stackoverflow.com/questions/416046
复制相似问题