TimingProfiler
Predict timing behavior 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 behavior during software development and in model-based development environments.
Function stats
|
Call graph with timing information
|
Usage of variables
|
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 behavior.
- 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 behavior. 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 behavior into account, providing a unified approach to addressing resource usage.
Supported processors TimingProfiler is available for a wide and ever-growing array of target processors and compilers.
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 plugin for automatic integration of TimingProfiler in Jenkins, the leading open-source automation server.
Free trial Request your free trial package today.
How to buy:
Please do not hesitate to contact Gerard Fianen at INDES-IDS BV to discuss your formal S/W verification requirments
|