Main Content

Execution Speed

Improve execution speed of generated C/C++ code

Use code generation options and optimizations to improve the execution speed of the generated code. You can modify or disable dynamic memory allocation, which can affect execution speed. Parallelized code can be generated by using parfor loops. When available, take advantage of preexisting optimized C code and specialized libraries to speed up execution.

For more information about how to optimize your code for specific conditions, see Optimize Generated C/C++ and MEX Code.

Functions

expand all

coder.timeitMeasure execution time of generated C/C++ code (Since R2024b)
coder.perfCompareCompare execution times of MATLAB code and code generated using multiple configuration objects (Since R2024b)
coder.loop.interchangeInterchange loop indices in generated code (Since R2023a)
coder.loop.parallelizeParallelize specific for loops in generated code; disable automatic parallelization (Since R2021a)
coder.loop.reverseReverse loop iteration order in generated code (Since R2023a)
coder.loop.tileTile for-loops in the generated code (Since R2023a)
coder.loop.unrollAndJamUnroll and jam for-loops in the generated code (Since R2023a)
coder.loop.vectorizeVectorize for loops in generated code (Since R2023a)
coder.unrollUnroll for-loop by making a copy of the loop body for each loop iteration
parforParallel for-loop
coder.inlineControl inlining of current function in generated code
coder.inlineCallInline called function in generated code (Since R2024a)
coder.nonInlineCallPrevent inlining of called function in generated code (Since R2024a)
coder.areUnboundedVariableSizedArraysSupportedCheck if current configuration settings allow unbounded variable-size arrays (Since R2024a)
coder.varsizeResolve size mismatch errors and declare upper bounds
coder.constFold expressions into constants in generated code
coder.cevalCall C/C++ function from generated code

Classes

coder.BLASCallbackAbstract class for specifying the BLAS library and CBLAS header and data type information for BLAS calls in generated code
coder.LAPACKCallbackAbstract class for specifying the LAPACK library and LAPACKE header file for LAPACK calls in generated code
coder.fftw.StandaloneFFTW3Interface Abstract class for specifying an FFTW library for FFTW calls in generated code
coder.loop.ControlCustomize loop optimizations in generated code (Since R2023a)

Topics

Generated Code Optimizations

memcpy and memset Optimizations

Variable-Size Arrays

Array Layout

Loops

Function Calls

Numerical Edge Cases

External Code Integration

Troubleshooting

Troubleshooting parfor-Loops

Diagnose errors for code generation of parfor-loops.

Resolve Issue: coder.inline("never") and coder.nonInlineCall Do Not Prevent Function Inlining

Troubleshoot instances of coder.inline('never') not preventing inlining.

MEX Generated on macOS Platform Stays Loaded in Memory

Troubleshoot issues that occur when the source MATLAB® code contains global or persistent variables that are reachable from the body of a parfor-loop.

Featured Examples