Timing Profiler: Predict timing behaviour during code development

TimingProfiler helps you identify application parts that cause unsatisfactory execution times. It delivers results as soon as there is compiled code, and thus can be used very early in the development process, when measurements on physical hardware are costly or plain impossible.

This makes TimingProfiler ideally suited for constantly monitoring timing behaviour during software development and in model-based development environments.

The dilemma

Tests on physical hardware are typically based on code instrumentation, require elaborate technical equipment and cause significant effort. Worse still, they only provide feedback about the average-case behaviour.

For obtaining worst-case guarantees, static analysis tools such as aiT WCET Analyzers are available that do not require access to the physical hardware and can be easily automated. However, they are typically used late in the development and have to take into account the software and hardware configuration in great detail.

The solution

TimingProfiler has been specifically developed to apply static-analysis techniques at early development stages, providing quick feedback about the timing behaviour. It takes executable code as input and explores the timing of all potential execution paths of each task on a generic processor with the target instruction set, e.g. PowerPC.

The goal is not to give precise worst-case guarantees, but to enable development of applications in a timing-conscious way without cumbersome measurements on physical hardware. In fact, the analysis is applicable when no hardware is available yet, or the application is not mature enough for measurements.

No user interaction is required; information not statically available is filled in by specialized heuristics. Hence, the resulting execution time is a realistic worst-case scenario, albeit not a guarantee as provided by aiT.

Your benefits

TimingProfiler gives detailed information about the execution time and time-critical paths.

The analysis is purely static. No access to physical hardware and no code instrumentation are required.

The analyzer does not need to be stimulated with concrete inputs. By default, it takes all potential inputs into account.

Nevertheless, the analysis can be restricted to specific execution scenarios if desired.

The tool shows call and control flow graphs, and displays all relevant information about the executable.

Hotspots and bottlenecks can be identified at early development stages so that late-stage integration problems can be avoided.

This provides for easy integration into the development process, and enables application in continuous test and integration frameworks.

TimingProfiler can be seamlessly coupled with StackAnalyzer to additionally take the stack behaviour into account, providing a unified approach to addressing resource usage.

Supported processors

Integration

TimingProfiler is also available as an integral part of the SCADE Suite, the market-leading mission and safety-critical embedded software development environment from Esterel. Within the Suite, the tool is called Timing and Stack Optimizer.

We also offer a plug-in for automatic integration of TimingProfiler in Jenkins, the leading open-source automation server.

Free trial

Free trial versions are available for PowerPC, ARM, and TriCore.
Support for further architectures is underway, or can be requested. Please email our customer support team with any questions.