How Does AQTime Do It?

I've been testing out the performance and memory profiler AQTime to see if it's worthwhile spending those big $$$ for it for my Delphi application.

What amazes me is how it can give you source line level performance tracing (which includes the number of times each line was executed and the amount of time that line took) without modifying the application's source code and without adding an inordinate amount of time to the debug run.

The way that they do this so efficiently makes me think there might be some techniques/technologies used here that I don't know about that would be useful to know about.

Do you know what kind of methods they use to capture the execution line-by-line without code changes?

Are there other profiling tools that also do non-invasive line-by-line checking and if so, do they use the same techniques?

Answers


This is just speculation, but perhaps AQtime is based on a technology that is similar to Microsoft Detours?

Detours is a library for instrumenting arbitrary Win32 functions on x86, x64, and IA64 machines. Detours intercepts Win32 functions by re-writing the in-memory code for target functions.


I've made an open source profiler for Delphi which does the same: http://code.google.com/p/asmprofiler/

It's not perfect, but it's free :-). Is also uses the Detour technique. It stores every call (you must manual set which functions you want to profile), so it can make an exact call history tree, including a time chart (!).


Need Your Help

What is the EDGE api that appears in the phonegap docs?

cordova edge

I was looking at phonegap api docs. I came across EDGE in the version dropdown. I googled the diff between the regular phonegap versions api and EDGE. But could not find anything strong. Can someon...

Can't get Video ID after uploading using Direct-Upload to Youtube

php zend-framework youtube youtube-api

I am using direct-upload method to upload video to youtube. Video successfully uploads but i can't get the video id after upload process finished.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.