RapiTime FAQs

This page lists several frequently asked questions for RapiTime, the on-target timing analysis verification tool.

RapiTime is part of the RVS product range. For frequently asked questions on RVS tools in general, click here.

What is RapiTime?

RapiTime is the leading tool for worst-case execution time analysis of critical software.

Used globally in the aerospace and automotive industries, it reduces the cost of analyzing the worst-case timing behavior of critical software.

As part of the RVS toolsuite, it forms part of a software verification solution that also includes tools for functional testing and structural coverage analysis. 

How does RapiTime work?

RapiTime works by injecting instrumentation code into source code and executing the native build system so that timing results are collected during program execution. Data can be collected from almost any target hardware by a variety of approaches.

Which types of timing data does RapiTime calculate?

When you run your code on-target, or on-host using a simulator, RapiTime collects several timing metrics. These include worst-case execution time, high and low water mark paths, and minimum, average and maximum execution times for each test of your code. 

How does RapiTime calculate the worst-case execution time of my software?

The worst-case execution time reported by RapiTime is pessimistic, meaning the actual worst-case execution time of your code could not be higher than that reported by RapiTime. This satisfies the stringent requirements of embedded system certification. 

Can I determine timing metrics on my target, which has limited RAM and/or ROM?

The instrumentation overheads for RapiTime tools are very low, and zero-instrumentation overhead can even be supported in some cases, depending on your target hardware and data collection strategy. This means that you can use RapiTime with virtually any target. 

If your available memory is very limited, you can use RapiTime's Time Bands feature to automatically select the depth of instrumentation of your code based on the expected execution frequencies of your code. 

Can I use RapiTime to analyze the timing behavior of multicore architectures?

As with all RVS tools, RapiTime supports data collection on multicore architectures. RapiTime achieves this by suspending data collection during a task interrupt and reinitializing collection when the task on the current core resumes execution. You can also use RapiTime to identify the interference produced by other cores on your system under test.

RapiTime is a key component of the Rapita Systems Multicore Timing Solution, which analyzes the timing behavior of multicore systems and is suitable for DO-178C/CAST-32A compliance. 

How does RapiTime help me investigate timing behavior?

RapiTime includes a Rewind Trace utility, which lets you step through the events that occurred during program execution like you can with a debugger. This lets you set breakpoints and easily analyze the execution of your program.

In addition to guaranteeing that timing deadlines are met, how else can I use RapiTime?

You can use timing metrics to optimize your code for timing behavior. RapiTime highlights the costliest functions in terms of execution time, guiding you towards the best optimization candidates. By running RapiTime again after you optimize your code, you can determine performance improvements.

How do I determine the execution time overhead from instrumenting my source code?

RapiTime includes inbuilt functionality to let you determine the execution time overhead of adding instrumentation to your source code. This overhead can then be automatically subtracted from the timing metrics reported by the tool. 

How is my data presented?

All RVS tools include a friendly user-interface that presents your data in both tabular and graphical formats. Using this interface, you can filter your results to zoom in on target functions, making it easy to find the information you are looking for.

RapiTime includes charts designed to help you easily understand your data:

  • Its Treemaps provide a high-level overview of your code base and help you understand the timing behavior of your code at a glance.
  • Its Invocation Timeline and Aggregate Profile Charts let you visualize your results in of your code's call tree, identify the calls with the highest execution times, and investigate specific timing events more easily.
My software is part of a product that must be certified against a safety guideline. Can RapiTime be qualified for use in my project?

RapiTime is designed to meet the most stringent needs of certification processes, such as the DO-178B/C process used in the aerospace industry and the ISO 26262 process used in the automotive industry. We can provide developer qualification documents, a template integration qualification report and on-site tests to support you in qualifying RapiTime tools in projects requiring certification.

How do I verify my software’s functional and temporal behavior when instrumentation has been applied?

We recommend that, when producing timing evidence for certification, you use RapiTime to improve your test data so that the high watermark path and predicted worst-case path align as closely as possible and then perform task boundary only instrumentation to measure the high-watermark execution times. These values will be representative of the estimated worst case times, and the minimal level of instrumentation applied will have a negligible effect on the application's timing behavior.

Which languages does RapiTime support?

RapiTime supports C, C++ and Ada projects, including mixed-language ones.

How large a code base can RVS tools handle?

RVS tools are designed to handle very large code bases. Because of the efficient algorithms used by RVS tools, there is no fundamental limitation to the number of lines of code that RVS can process, and our RVS tools have been used on projects with millions of lines of code.

Which host operating systems can RVS be used on?

RVS tools support Windows 7 or newer, Windows Server 2008 R2 or newer, and a variety of Linux distributions including Ubuntu and Red Hat.

RVS tools can be used on projects with unsupported operating systems by using a clone integration to split the process and delegate parts of it to the unsupported machine.

Can I use RapiTime with my build system?

RapiTime can be integrated to work with almost any compiler and target hardware. Our integration service promises to deliver a robust integration of RapiTime into your build system.

Which hardware architectures do RVS tools support?

RVS tools can be integrated to work with almost any embedded target. Our engineers can work with you to determine the optimal strategy for integrating the tool with your target, even for multi-core architectures. For more information on the hardware architectures we have integrated RVS tools with, see our support specification.

How are RVS products licensed?

We offer both “Node-locked” and “Floating” licenses, and a license server to support use of our tools in your specific development environment. Floating licenses follow the “Enterprise” model, meaning that you can use our tools across geographical boundaries and different projects and users.

For more information on our licensing models, see our RVS licensing FAQs.

What happens if I encounter an issue while using an RVS tool?

All RVS licenses include access to our dedicated in-house support team, who will work with you to provide a rapid fix to your issue. This is a critical part of our vision. During 2016, we responded to 97% of new support requests within one working day, closed 56% of these within 3 working days and 91% within 20 working days. We also inform our customers of known issues via our website and email. 

How do you support RVS users?

We provide an extensive set of RVS documentation with each of our products, and offer training courses guiding you through the most effective use of RVS tools. All our users can benefit from privileged access to our website, which includes downloads for new product releases. 

How do I learn more about RapiTime?

You can request a trial version of RVS, which includes RapiTime. You can also arrange a demonstration, where a member of our team will work with you to show the benefits RapiTime can offer you.

If you're interested in RapiTime in academia, you can search for it in the academic press