SamplingProfiler

A sampling profiler for Delphi 5 to Delphi 2009
Download

SamplingProfiler Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Publisher Name:
  • Eric Grange
  • Operating Systems:
  • Windows All
  • File Size:
  • 546 KB

SamplingProfiler Tags


SamplingProfiler Description

The SamplingProfiler application was developed to be a sampling profiler for Delphi, though it may be able to profile application compiled by many other compilers, the focus is (currently) solely on Delphi applications. There are basically two kinds of profiling tools: instrumenting profilers (source or binary) and sampling profilers. Instrumenting profilers work by altering an application code or binary, and adding calls to functions that will count how many time each procedure was called and how many time was spent inside. This approach allows an exhaustive analysis of which code called which code, and how many times was spent in each procedures. However, it will typically incur a significant execution speed and memory penalty that can only be avoided by spending time and insight and limiting instrumentation to a subset of an application's functions, making them more suitable when you know where the issue is. Sampling profilers on the other hand do not require instrumentation and proceed by a statistical analysis by periodically looking at which code is currently being executed by the profiled application. The statistical nature means that not all code may be seen by the profiler (only code that takes time to execute), profiling information may vary randomly between executions and context information for bottlenecks is typically limited. Main features: Using a sampling profilers has benefits: it will not affect the execution speed significantly, neither because of its own execution times, nor because it affects the CPU instruction or data cache by its instrumenting code (ie. you get a measure of actual performance like if there was no profiler running) it is immune to the heisenbug of instrumenting profiler that inflate disproportionately the execution time of small procedures invoked in tight loops or from many contexts in an application’s code. it is able to measure the time spent in other OS components or DLLs (like the video driver, OpenGL, etc.), not just the time spent in your application profiling latencies won’t hide your application’s latencies (hard disk accesses, network accesses, video driver waits…), which can be particularly significant if your application makes asynchronous accesses. it can pinpoint bottlenecks at the code-line level (not just procedure level), for the entire application. it can be used to profile over long periods of time, like a full batch run of computations or a complete game level, you can literally have an application being profiled for days being lightweight, you can profile multiple applications simultaneously (like a client and a server running on the same development machine)


SamplingProfiler Related Software