views:

352

answers:

3

Running through all the questions on profiling tools, I was surprised to discover VTune by Intel that I hadn't heard of before. At $700, it is even more expensive than AQTime.

But before I make the decision to put down the big bucks for AQTime, has anyone used VTune for Delphi, and if so, do you think it has any benefits that may make it a better choice than AQTime and the other profiling tools for Delphi that are out there?

+3  A: 

You can download 30 days vtune trial and try by yourself.

I have used AQTime and VTune.

VTune is good if you want to test multithreaded application - it help me to find locks in memory manager which slow down my multithreaded part of application.

Secend difference is that VTune is sample profiler and AQTime is instrument profiler. Both has strong and weak points but I personaly prefer instrument one. With instrument profiler you get exactly information how many times your function was called, all caller of this procedure etc with cost of inaccurate time results - instrumentation profilers change a way processor executing code, so branch predictions and cache works different that in real and tested app work slow.

But most important is GUI and here AQTime win. It is powerfull application but very easy in use. VTune is quite different. I lost too much time to find right command in VTune. GUI is very messy.

So except of multithreading I use AQTime.

Macedonczyk
I believe AQTime offers both instrumentation and sampling. What I would check out about VTune is its support for the Borland TD32 debug output format.
Warren P
According to the PDFs, VTUNE has ZERO support for TD32 debug format. So can VTune even give you a call stack with line number information for a delphi executable? THey mention C#, C/C++, and Visual Basic directly, but there is no mention of delphi, or anything else.
Warren P
Warren: According to this: http://software.intel.com/en-us/articles/intel-vtune-performance-analyzer-for-windows-turning-on-debug-symbols-for-borland-delphi-enterprise-version-60/ VTune DOES have TD32 support.
lkessler
+4  A: 

VTune can read low level CPU counters, like branch prediction, cache misses, etc. I used it to find out why TopMM (multithreaded scaling memory manager!) was very slow on my Hyperthreading CPU. Was something about 64kb memory cache aliasing. So it gives more in-dept information how it really runs on a CPU, and why something is slow due to cache misses etc. For real optimalisation (last %) I would use both, for normal optimalisation use AQ or other (like my asmprofiler :-) )

André
André: If you could just add line-level information into asmprofiler, it would be everything I need.
lkessler
+1  A: 

I am a very happy AQTime customer, and I have also heard good things about other sampling or instrumenting profilers, one of which is free. VTUNE advertises no support at all for Delphi, so using it with Delphi would be an unsupported scenario.

As some commenters have hinted, VTUNE is for hand-written assembly and massively multi-core threading, or 64 bit assembly optimizing, not for basic "pascal" writing code optimizations in Delphi.

Since AQTime includes both sampling and instrumenting, you get much much better and more predictable coverage and and a much more sure-fire way of finding your ordinary code-path problems in applications with only a small number of threads.

Warren

Warren P