Below you will find some tips for getting the most out of a profile cycle in AQTime, with the least amount of wasted effort:
-
Do not assume a function has “no problems”. The profilers are there to give you a health report; use them. Known problems may have unexpected roots.
-
Even a small, quick function can impair performance if it is called extensively. Always check the Hit Count for anomalies. Are there errant hit counts, for instance where a very common piece of code makes a needless call? If they are not errant, can the very high hit counts be decreased by tuning your algorithms?
-
Restrict you profiling areas when you can. The profilers need time to gather information about the sections they are set to analyze (areas). They may take more time while profiling the actual execution. The more precise your area specification, the faster the profiling. Remember that an application includes a lot of code that will never need to be profiled. For instance, user interface code normally does little but wait on the user. See Controlling What to Profile.
-
Long functions can be difficult to profile. One way around this is to break them down into several sub-functions for profiling purposes (You will probably find that the code is also clearer once broken down, and easier to analyze).
-
No real-world execution of an application is identical to another. For instance, it is impossible to predict and control how many times the CPU updates its caches. So that from one run to the next, you should expect some inconsistency in results. Where you need high-precision results, keep a very detailed record of how the test was run.
-
To help achieve consistent test results, reduce the number of processes running on your machine during profiling.
See Also
Running a Profiling Session
Starting and Stopping Profiling
Controlling What to Profile