我最近从Delphi 4升级到Delphi 2009.使用Delphi 4,我一直使用Primoz Gabrijelcic的GpProfile作为分析器,使用Turbo Power的Memory Sleuth进行内存分析和泄漏调试.两者都适合我.但我现在需要能够与Delphi 2009配合使用的新工具.
对于Delphi的分析/分析工具的领导者显然是AutomatedQA的AQTime.他们最近甚至吞噬了Atanas Soyanov的Memproof,据我所知这是一款出色的免费记忆分析工具,并将其功能融入AQTime.但AQTime对于个人程序员来说非常昂贵.它实际上比升级到Delphi 2009成本更高!
所以我的问题是:是否还有其他较便宜的选项可以在当前版本的Delphi中进行性能分析和内存分析,您对此感到满意并推荐,或者我应该咬紧牙关并为AQTime付出巨额代价?
Addenum:似乎早期的回答者表明已经包含在Delphi中的FastMM管理器非常适合发现内存泄漏.
那么,源代码分析有什么好的选择吗?
我很好奇的是Michael Adolph的ProDelphi,它不到AQTime成本的六分之一.你用它吗?AQTime值六倍的价值吗?
Addenum 2:我下载了AQTime和ProDelphi的试用版.
AQTime起初有点压倒性,有点令人困惑.花了几个小时才找到了解决它所需的一些技巧.
ProDelphi非常像我习惯的GpProfile.但是它的窗户混乱而且令人困惑,而且它不如GpProfile那么好.
对我来说,差异似乎是:
ProDelphi会更改您的代码.AQTime没有.如果出现问题,更改代码可能会损坏您的数据,但我对GpProfile的体验是它从未发生在我身上.加一个AQTime.
ProDelphi要求您关闭优化.但是你想要描述的是你的程序,它的优化程度,运行方式.加一个AQTime.
ProDelphi只能剖析功能或程序.AQTime可以归结为单独的线路.AQTime加2.
ProDelphi有一个免费版本,可以分析20个例程,其专业版本的成本不到100美元.AQTime是600美元.ProDelphi加4.
目前比分是4-4.你怎么看?
Addenum 3:Primoz Gabrijelcic计划让GpProfile再次运作.请参阅他对以下一些回复的评论.他在StackOverflow上饰演Gabr.
Addenum 4:看起来似乎可能有一个分析器解决方案.参见Andre的开源asmprofiler,如下所述.
对于价格,你无法击败FastMM4作为内存跟踪器.它使用简单但功能强大且与Delphi完美集成.
我想你知道,没有下载,安装或改变任何其他东西,只需要这一行
ReportMemoryLeaksOnShutDown := True;
代码中的任何位置,都将启用内存泄漏的基本报告.
如果您需要更多像崩溃信息,EurekaLog是我们使用的非常好的产品.MadExcept也有良好的声誉......
对于具体的分析,我们有AQTime.
至于gpProfile,你可以尝试在bug上使用gabr进行更新...或者自己更新gpProfile,因为它是开源的.;-)
我为Delphi开发了一个开源分析器:http: //code.google.com/p/asmprofiler/
它并不完美,但它是免费和开源的:-).
我做的主要原因是因为我错过了一个确切的调用树.例如,ProDelphi仅存储所有呼叫的摘要和总计数,您无法查看特定时间内特定程序的调用(或持续时间).它有一个时间表,因此您可以看到通话时间如何随时间而变化.
另请参阅Eric Grange的采样分析器
我对AQtime的分析非常满意.