Advanced RTOS, embedded real-time OS, compact OS, IDE, Software development toolkits, embedded c compilers, Multicore debugger, hardware probes, static source code analysis tool, secure hypervisor, virtual prototyping platform
The MULTI® Performance Profiler
Performance Profiler
MULTI® provides detailed and summary profiling information to enable the developer to identify the code where execution consumes the greatest amount of time as well as how many times a given procedure or block of code is executing. This helps users select the best optimizations (such as loop unrolling or inlining) for a particular section of code. MULTI's Profiler can gather, arrange, and display profile information in a variety of formats:
 
Call Graph - Shows calls to and from each function, with percentages of time for each. The Call Graph is shown in tabular or graphical form.
Block Coverage - Shows basic blocks of code and how many times each basic block was executed in a particular run of the program. Unexecuted blocks are highlighted.
Standard Calls Report - Shows percentage of overall time spent in each function.
Source Lines Report - Shows percentages for each source line, whether in original high-level language form or assembly language form.
 
 



Archived Webinar

Secure and Reliable High-Performance Devices: Build them with the INTEGRITY RTOS and the IBM PowerPC 970FX processor.


All events »




Processors Supported
PowerPC
MCORE
ARM/Thumb 
ST100
i960
Alpha
RH32
680x0/683xx 
StarCore
StrongARM

V8xx
SH

RAD6000
FR
CPU32
ColdFire
MIPS
x86/Pentium
TriCore
SPARC/
SPARClite




Integrated Development Environment

Click here for a larger view.
Special Profiling Reports

The Standard Calls Report is MULTI's version of a standard report generated by most profilers. This report lists the functions of a program according to the amount of time spent in each function. The Profiler is tightly integrated with the Debugger; clicking on a line in the Standard Calls Report (or in any other report) brings up the associated source code in the debug window. Each source line is annotated with profiling information, such as the amount of time the program spent on that line or the number of times that line executed.

Using the Standard Calls Report to isolate a function hot spot may not be sufficient if the function consists of thousands of lines or many loops. To help in this case, the Source Lines Report lists the individual source lines that are taking up the most time, providing the user with another method of trying to locate performance bottlenecks. In addition, the user can select a range of code for timing analysis.

Sometimes a programmer can't figure out why an isolated source line is taking a lot of time. Clicking on the assembly icon button interlaces source code with machine instructions and displays the profiling information on an instruction by instruction basis. Looking at the details of the assembly code can sometimes be revealing; for example, a lot of time can be lost due to effects such as consistent cache misses, which may be clustered around specific assembly instructions.

Profiling Methodology

MULTI employs various schemes for collecting profiing data, depending on the capabilities of the target system. When developing programs for a system running UNIX, MULTI uses compile time options to make use of the profiling data collection capabilities provided by the operating system. When used with a simulator, MULTI uses the simulator's model of the target processor to determine processor timings. Embedded programs using ROM monitors typically use a regular interrupt to sample and store the location of the program counter. In-Circuit Emulators usually have a mechanism whereby trace information can be interpreted as profiling data; depending on the emulator, this can be done either automatically or manually.

» RTOS
» MULTI IDE
» AdaMULTI IDE
» Compilers
» Communications Software
» Custom Development