Performance Profiler tools

SD supplies performance profiling tools for arbitrary procedural languages. Such tools provide statistics about the execution frequency of parts of a program, both absolute and relative. This information is invaluable in tuning a program for peak performance. Profile information is collected for every basic block in the program, which gives the same information as profiling every statement with significantly lower overhead.

SD's profiling tools operate by inserting language-specific probes for each basic block in the source files of interest before compilation/execution. At execution time, the probes count each execution of the block ("profiling data"). On completion of execution, the in-memory profile data is typically written to a profile data file. Finally, the profile data is displayed on top of browsable source text of the software, enabling a performance engineer to see which code is executed at which frequency.

Typical Features

  • Not dependent on any particular compiler or object formats
  • Works with tens of thousands of files
  • View by frequency or subsystem
  • Profile data is shown by count, percentage, color and bar width
  • Very low probe overhead (one or two machine instructions per executed probe)
  • Can accumulate profile data from multiple execution runs
  • Browsable source files overlayed with collected profile information
  • Produces profile report by application, subsystem and file
  • Can operate with custom/embedded application execution environments
  • Consistent style and operation across different languages
  • Probe installer and display tool operate on Windows NT/2000/XP/Vista/7
  • Application under test can execute in arbitrary native enviroment including embedded systems

SD is beta-testing timing profilers for C, C++, Java, C# and PHP5. These profilers provide timing for individual functions, and for functions and all subfunctions, with a call graph. If you are interested in doing a beta test, send a request to info@semanticdesigns.com.

Available for the following languages

Semantic Designs also provides test coverage tools.

Unusual Requirements?

Your language not listed, runs in an unusual environment, or you have some custom need? SD can configure a profiling tool for you! These tools are based on DMS, and inherit DMS's language agility and scalability. A white paper on how profiling is implemented with DMS is available: TestCoverage.pdf

For more information: Info@semanticdesigns.com


Performance Profiler tools