Main Content

Performance

Execution time profiling, memory usage profiling, optimized code

When you are ready to generate production code, to improve performance, use configuration options and advanced optimizations. You can use the options and optimizations described in the MATLAB® Coder™ product documentation. With Embedded Coder®, you can also use execution-time profiling and memory usage profiling to analyze performance.

Use execution-time profiling to:

  • Establish whether the generated code meets real-time requirements of your hardware.

  • Determine code sections that require performance improvements.

The static code metrics report includes metrics on files, global variables, and functions. The static code metrics report helps you to determine which global variables and function call paths affect performance.To determine the size of stack memory that is required to run generated code, you can run a software-in-the-loop (SIL) and processor-in-the-loop (PIL) execution that generates a stack usage profile.

Apps

Code Profile AnalyzerAnalyze execution-time and stack usage profiles for generated code (Since R2023a)

Functions

expand all

instrumentCodeAdd instrumentation to generated code to perform execution time / memory usage profiling and analyze code coverage (Since R2023a)
ExecutionTimeInSecondsGet execution time in seconds for profiled section of code (MATLAB code generation)
ExecutionTimeInTicksGet execution times in timer ticks for profiled section of code (MATLAB code generation)
getCoderExecutionProfileExtract execution-time profile for code generated from MATLAB function (MATLAB code generation)
NameGet name of profiled code section (MATLAB code generation)
NumberGet number that uniquely identifies profiled code section (MATLAB code generation)
NumCallsTotal number of calls to profiled code section (MATLAB code generation)
reportOpen code execution profiling report and specify display of time measurements (MATLAB code generation)
scheduleVisualize task scheduling (MATLAB code generation) (Since R2021b)
SectionsGet array of coder.profile.ExecutionTimeSection objects for profiled code sections (MATLAB code generation)
SelfTimeInTicksGet number of timer ticks recorded for profiled code section, excluding time spent in child functions (MATLAB code generation)
TimeTime over which code section execution time measurements are made (MATLAB code generation)
TimerTicksPerSecondGet and set number of timer ticks per second (MATLAB code generation)
TotalExecutionTimeInTicksGet total number of timer ticks recorded for profiled code section (MATLAB code generation)
TotalSelfTimeInTicksGet total number of timer ticks recorded for profiled code section, excluding time spent in child functions (MATLAB code generation)
TotalTurnaroundTimeInTicksGet total number of timer ticks between start and finish of the profiled code section over the entire execution. (MATLAB code generation)
TurnaroundTimeInTicksGet number of timer ticks between start and finish of the profiled code section (MATLAB code generation)
MaximumExecutionTimeCallNumGet the call number at which maximum number of timer ticks occurred (MATLAB code generation)
MaximumExecutionTimeInTicksGet maximum number of timer ticks for single invocation of profiled code section (MATLAB code generation)
MaximumSelfTimeCallNumGet the call number at which the maximum number of timer ticks occurred, excluding time spent in child functions (MATLAB code generation)
MaximumSelfTimeInTicksGet the maximum number of timer ticks recorded for profiled code section, excluding time spent in child functions (MATLAB code generation)
MaximumTurnaroundTimeCallNumGet call number for the code section invocation with the maximum number of timer ticks between the start and the finish (MATLAB code generation)
MaximumTurnaroundTimeInTicksGet maximum number of timer ticks between start and finish of a single invocation of profiled code section (MATLAB code generation)

Objects

expand all

coder.profile.StackDriverSpecify driver to obtain stack usage data from target hardware (Since R2022a)

Topics

Execution Time Profiling

Memory Usage Profiling

Execution Speed