Delphi的分析器和内存分析工具

54

我最近从Delphi 4升级到了Delphi 2009。在Delphi 4中,我使用Primoz Gabrijelcic的GpProfile作为分析器,使用Turbo Power的Memory Sleuth进行内存分析和泄漏调试。两者都对我很有用。但现在我需要新的工具来适应Delphi 2009。

显然,AutomatedQA的AQTime是Delphi中领先的分析/分析工具。他们最近甚至收购了Atanas Soyanov的Memproof,我了解到这是一个出色且免费的内存分析工具,并将其功能合并到AQTime中。但对于个人程序员来说,AQTime非常昂贵。它实际上比升级到Delphi 2009的成本还要高!

因此,我的问题是:是否有其他价格更便宜的选项可以在当前版本的Delphi中进行分析和内存分析,您是否满意并推荐,或者我应该咬紧牙关支付AQTime的巨额费用?


补充:看起来早期回答者指出,Delphi 中已经包含的 FastMM 管理器非常适合查找内存泄漏。

那么,有没有好的源代码分析工具?我很想了解 Michael Adolph 的 ProDelphi,它的成本不到 AQTime 的六分之一。您使用过吗?AQTime 是否值得支付六倍的费用?


附录2:我下载了 AQTime 和 ProDelphi 的试用版本。

AQTime 一开始有点让人不知所措和困惑。需要几个小时才能找到一些必要的技巧来连接它。

ProDelphi 非常像我之前使用的 GpProfile。但是它的窗口杂乱无章,令人困惑,而且不如 GpProfile 美观。

对我来说,主要差异似乎是:

  1. ProDelphi 会更改你的代码,而 AQTime 不会。如果出现问题,更改代码可能会损坏数据,但我的经验是 GpProfile 从未发生过这种情况。AQTime 得分加1。

  2. ProDelphi 要求关闭优化。但是,您希望优化后运行程序进行分析。AQTime 得分加1。

  3. ProDelphi 只能对函数或过程进行分析。AQTime 可以分析到每行代码。AQTime 得分加2。

  4. ProDelphi 有一个免费版本,可以对20个例程进行分析,其专业版的价格低于100美元。AQTime 的价格为600美元。ProDelphi 得分加4。

现在得分是4-4。你怎么看?


补充3:Primoz Gabrijelcic计划使GpProfile再次可用。请参阅他在以下一些回复中的评论。他在StackOverflow上使用Gabr


补充4:看起来可能确实有一个分析器解决方案。请参见下面描述的Andre开源asmprofiler


对不起,我只有使用AQTime的经验。 - Toon Krijthe
你觉得这值得花费吗? - lkessler
2
你应该试试 AQTime 的限时演示版。我在我的笔记本电脑上遇到了很多问题,因为它的 DPI 设置为 120,一些对话框实际上无法使用,因为按钮被切断了。这让我没有太多信心,而且支持人员说他们无法解决这个问题... :-( - mghie
1
AQTime在我安装Delphi XE2更新4时自动安装后导致了一些奇怪的问题。我不得不卸载AQTime才能使用Delphi最简单的功能,例如“光标处完成类别”在我卸载AQTime之前无法正常工作。 - Jerry Dodge
这是免费软件,易于使用(与ProDelphi相比)。它还可以达到行代码精度。但我怀疑在这种情况下结果是否准确。 delphitools.info/downloads/samplingprofiler-changelog - Gabriel
12个回答

1

对于性能分析器,您可以尝试来自Gurock Software的SmartInspect。我从未使用过GpProfile,但是快速浏览其功能集使我想起了SmartInspect。有趣的是,它并没有声称自己是一个性能分析器,但它似乎和GpProfile一样具备这个功能(除非我漏看了什么)。它支持Delphi 2009,有免费试用版,并且比AQTime便宜一点。

注意:SmartInspect是一个记录器而不是性能分析器。


谢谢您的建议。我之前没有听说过SmartInspect。它的价格大约是AQTime的一半。 - lkessler
8
SmartInspect是一个记录器。我不明白它如何与真正的分析器相比较。你能解释一下吗? - Lars Truijens

0

FastMM4 内存管理器(在此旧回答中提到),它会记录所有分配的列表,并可以在运行时进行查询(并在包含的演示应用程序中以网格形式显示)。 它不能精确地显示哪个对象泄漏,因为统计数据是按块大小计算的。 但是,它可以用于生产环境中长时间监控应用程序,例如服务器或服务。 我目前正在将其集成到一个(商业)Web应用程序服务器框架中作为“VisualMM”插件。


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