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

Delphi的分析器和内存分析工具,delphi,memory-leaks,profiling,Delphi,Memory Leaks,Profiling,我最近从Delphi 4升级到Delphi 2009。在Delphi4中,我一直用作探查器,用于内存分析和泄漏调试。这两种方法对我都很有效。但是我现在需要新的工具来配合Delphi2009 Delphi的评测/分析工具的领先者显然是。他们最近甚至狼吞虎咽,据我所知,这是一个优秀的免费内存分析工具,并将其功能整合到AQTime中。但是,对于一个程序员来说,时间是非常昂贵的。它实际上比升级到Delphi 2009的成本还要高 因此,我的问题是:在当前版本的Delphi中,是否还有其他更便宜的选项可以

我最近从Delphi 4升级到Delphi 2009。在Delphi4中,我一直用作探查器,用于内存分析和泄漏调试。这两种方法对我都很有效。但是我现在需要新的工具来配合Delphi2009

Delphi的评测/分析工具的领先者显然是。他们最近甚至狼吞虎咽,据我所知,这是一个优秀的免费内存分析工具,并将其功能整合到AQTime中。但是,对于一个程序员来说,时间是非常昂贵的。它实际上比升级到Delphi 2009的成本还要高

因此,我的问题是:在当前版本的Delphi中,是否还有其他更便宜的选项可以进行评测和内存分析,您对此感到满意并推荐,还是我应该咬紧牙关,花一大笔钱来完成这段时间


Addenum:早期的回答似乎表明Delphi中已经包含的FastMM管理器非常适合查找内存泄漏

那么,有什么好的源代码评测替代方案吗

我很好奇的一个问题是,这不到时间成本的六分之一。你用它吗?花六倍的时间值得吗


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

开始的时候,我有点不知所措,有点困惑。花了几个小时才找到连接它所需的一些技巧

ProDelphi非常像我以前使用的GpProfile。但是它的窗口杂乱无章,令人困惑,而且它没有GpProfile那么好

对我来说,最大的区别似乎是:

  • ProDelphi会更改您的代码。时间不会。如果出现问题,更改代码可能会损坏您的数据,但我使用GpProfile的经验是,我从未遇到过这种情况。再加一次

  • ProDelphi要求您关闭优化。但是,您想要评测的是您的程序,它将以优化的方式运行。再加一次

  • ProDelphi只能分析到函数或过程。AQTime可以延伸到各个行。一次加2

  • ProDelphi有一个免费的版本,可以评测20个例程,其专业版的价格不到100美元。时间是600美元。ProDelphi加4

  • 比分现在是4比4。你觉得怎么样


    附录3:Primoz Gabrijelcic计划让GpProfile再次工作。请参见他对以下部分回复的评论。他被认为是一个好朋友



    Addnum 4:看来毕竟可能有一个分析器解决方案。请参阅。

    确实,对于评测,我错过了Primoz的GpProfile,并且还没有找到一个好的替代者。我曾经试过一次,但对它的价格不太满意


    但是,对于跟踪内存泄漏和不可靠的内存访问,我不会比使用FastMM4更高兴。

    对于探查器,您可以从Gurock软件中尝试。我从未使用过GpProfile,但快速浏览它的功能集让我想起了SmartInspect。有趣的是,它并不声称是一个剖析器,但它似乎和GpProfile一样重要(除非我遗漏了什么)。它支持德尔福2009年,并有一个免费试用,是一个比较便宜的时间


    注意:SmartInspect是一个记录器,而不是一个探查器。

    我很高兴有时间进行评测。

    就价格而言,作为内存跟踪器,您无法击败FastMM4。它使用简单,但功能强大,与Delphi集成良好。
    我想你知道,不需要下载、安装或更改任何其他内容,只要把这条线

    ReportMemoryLeaksOnShutDown := True;
    
    在代码中的任何位置,都将启用内存泄漏的基本报告。
    如果您需要更多类似车祸的信息,EurekaLog是我们使用的一款非常好的产品。Madeexcept也有很好的声誉

    具体来说,我们有足够的时间进行分析


    至于gpProfile,您可以尝试安装bug,以便进行更新。。。或者去吧

    再看一看

    我同意您对ProDelphi界面的看法,但它做得足够好,我们很乐意继续使用它。我们只需要在遇到重大性能问题时偶尔分析一下,它总是能帮助我们很快发现问题。非常物有所值,而且Michael似乎很善于为新版本保持更新

    我建议的一件事是,因为它确实需要插入代码,所以在某种VCS中拥有所有相关的代码是非常宝贵的。当我们需要配置文件时,我们:

    • 在中检查所有相关文件
    • 把它们都检查一遍
    • 那就做我们需要的分析吧
    • 取消所有退房,有效地回到我们原来的位置

    使用了GpProfile和AQTime之后,我发现这两种方法都能有效地找到导致瓶颈的方法调用

    但是,AQTime还可以告诉我是哪行代码导致了这种情况,而无需对源代码进行任何更改(尽管它最适合TD32调试和调试DCU)

    我最近使用它将例程的速度提高了大约30倍(因为内部库函数使用不当)

    但是我不必自己付钱

    有没有人尝试过这是源代码的免费软件,它的writeup说:

    如果你正在寻找一个简单的 精确测量执行时间的方法 免费下载您的代码,TProfiler是 你需要什么。TProfiler是一个 非可视化和调试组件 使您能够创建命名的 代码中的计时器

    TProfiler的每个计时器提供 以下资料:

    计时器运行的次数 已激活(命中计数)总数 执行时间平均执行时间 每次命中的时间执行时间 上的第一次命中执行时间 最后一次命中命中率最低 执行时间以最大值命中 执行时间


    我已经为Delphi制作了一个开源分析器:

    不是p