Hybrid (measurement and static analysis)
Hybrid approaches to worst-case execution time estimation aim to combine the best features of measurement and static analysis whilst avoiding their pitfalls.
Hybrid approaches use a combination of three techniques:
- Recognising that the best possible model of an advanced microprocessor is the microprocessor itself, hybrid approaches use online testing to measure the execution time of short sub-paths between decision points in the code.
- By contrast, hybrid approaches view static analysis as the best way to determine the overall structure of the code and the paths through it. With a hybrid approach, this offline analysis is supplemented by information obtained during testing, such as numbers of loop iterations, and execution frequencies (modal operation) to build up a model of the overall code structure and determine which combinations of sub-paths form complete and feasible paths through the code.
- Finally measurement and path analysis information is combined to compute worst-case execution times in a way that captures execution time variation on individual paths due to hardware effects.
Advantages:
- Execution times are determined from real measurements, avoiding modelling errors.
- Program behaviour is determined from both the code, and the control flows observed during testing, hence meaningful results can be obtained without the need for extensive annotation.
- In addition to the worst-case execution time, and details of the worst-case path, a wealth of timing information can be provided. This includes high and low water marks, execution frequencies, and execution time distributions.
- Hybrid approaches are quick and easy to port to a new microprocessors or system variant.
Disadvantages:
- Measurements need to be taken during testing.
- To ensure accurate results, the tests need to provide a high level of code coverage.
RapiTime is the only commercially available worst-case execution time analysis tool that uses the hybrid approach.

