Profiler and Memory Analysis Tools for Delphi [clo

2019-01-02 20:10发布

I recently upgraded from Delphi 4 to Delphi 2009. With Delphi 4 I had been using GpProfile by Primoz Gabrijelcic as a profiler and Memory Sleuth by Turbo Power for memory analysis and leak debugging. Both worked well for me. But I now need new tools that will work with Delphi 2009.

The leader in Profiling/Analysis tools for Delphi by a wide margin is obviously AQTime by AutomatedQA. They recently even gobbled up Memproof by Atanas Soyanov, which I understood was an excellent and free memory analysis tool, and incorporated its functionality into AQTime. But AQTime is very expensive for an individual programmer. It actually costs more than the upgrade to Delphi 2009 cost!

So my question is: Are there other less expensive options to do profiling and memory analysis in current versions of Delphi that you are happy with and recommend, or should I bite the bullet and pay the big bucks for AQTime?


Addenum: It seems the early answerers are indicating that the FastMM manager already included in Delphi is very good for finding memory leaks.

So then, are there any good alternatives for source code profiling?

One I'm curious about is ProDelphi by Michael Adolph which is less than one sixth the cost of AQTime. Do you use it? Is AQTime worth paying six times as much?


Addenum 2: I downloaded trial versions of both AQTime and ProDelphi.

AQTime was a bit overwhelming and a little confusing at first. It took a few hours to find some of the tricks needed to hook it up.

ProDelphi was very much like the GpProfile that I was used to. But its windows are cluttered and confusing and it's not quite as nice as GpProfile.

To me the big differences seem to be:

  1. ProDelphi changes your code. AQTime does not. Changing code may corrupt your data if something goes wrong, but my experience with GpProfile was that it never happened to me. Plus one for AQTime.

  2. ProDelphi requires you turn optimization off. But what you want to profile is your program with optimization on, the way it will be run. Plus one for AQTime.

  3. ProDelphi only can profile down to the function or procedure. AQTime can go down to individual lines. Plus 2 for AQTime.

  4. ProDelphi has a free version that will profile 20 routines, and its pro version costs less than $100 USD. AQTime is $600 USD. Plus 4 for ProDelphi.

The score is now 4-4. What do you think?


Addenum 3: Primoz Gabrijelcic is planning to get GpProfile working again. See his comments on some of the responses below. He on StackOverflow as Gabr.


Addenum 4: It seems like there may be a profiler solution after all. See Andre's open source asmprofiler, described below.

12条回答
初与友歌
2楼-- · 2019-01-02 20:29

For a profiler you might try SmartInspect from Gurock Software. I never used GpProfile, but quickly glancing at its feature set reminded me of SmartInspect. Interestingly it doesn't claim to be a profiler, but it seems to be as much of one as GpProfile (unless I am missing something). It supports Delphi 2009 and has a free Trial and is a little cheaper then AQTime.

Note: SmartInspect is a logger rather than a profiler.

查看更多
怪性笑人.
3楼-- · 2019-01-02 20:30

We use AQTime Pro and are happy with it. Smartbear have recently released a completely free AQTime standard edition. Most of the features are still there but they have of course removed a bit

查看更多
零度萤火
4楼-- · 2019-01-02 20:31

Having used both GpProfile and AQTime I have found both to be effective at finding what method call is causing a bottle neck.

However AQTime can also tell me what line of code is causing this, without making any changes to my source code (although it works best with TD32 debugging and debug dcus).

I recently used it to speed up a routine by about 30x (due to bad use of a internal library function)

However I didn't have to pay for it myself!

查看更多
泪湿衣
5楼-- · 2019-01-02 20:32

I've been using ProDelphi for a long time & find it meets my needs.

I've been able to achieve stunning results in system performance improvements by using the data it provides.

For small projects the free version is fine.

For larger projects, you'll need the (Paid) pro version.

查看更多
人间绝色
6楼-- · 2019-01-02 20:33

The FastMM4 memory manager mentioned in this older answer ("How to monitor or visualize memory fragmentation of a delphi application") keeps a list of all allocations which can be queried at run time (and displayed in a grid using the included demo application). It does not exactly show which object leaks, as the statistics are per block size. But it can be useful for long-time monitoring of applications in production, for example servers or services. I am currently integrating it in a (commercial) web application server framework as the 'VisualMM' add-on.

查看更多
萌妹纸的霸气范
7楼-- · 2019-01-02 20:34

I've been very happy with AQtime for profiling.

查看更多
登录 后发表回答