timeit - Measure time required to run function - MATLAB (original) (raw)
Measure time required to run function
Syntax
Description
t = timeit([f](#btx36ta-f))
measures the time (in seconds) required to run the function specified by the function handle f
. In order to perform a robust measurement, timeit
calls the specified function multiple times and returns the median of the measurements. If the function runs fast, timeit
might call the function many times.
t = timeit([f](#btx36ta-f),[numOutputs](#btx36ta-numOutputs))
calls f
with the desired number of outputs, numOutputs
. By default, timeit
calls the function f
with one output (or no outputs, if the function does not return any outputs).
Examples
Use timeit
to time a function call to date
. This example uses a handle to a function that accepts no input.
Time the combination of several mathematical matrix operations: matrix transposition, element-by-element multiplication, and summation of columns.
A = rand(12000,400); B = rand(400,12000); f = @() sum(A.'.*B, 1); timeit(f)
Determine how long it takes to run svd
with one output argument, s = svd(X)
.
X = rand(100); f = @() svd(X); t1 = timeit(f)
Compare the results to svd
with three output arguments, [U,S,V] = svd(X)
.
Create a short function to allocate a matrix using nested loops. Preallocating an array using a nested loop is inefficient, but is shown here for illustrative purposes.
function mArr = preAllocFcn(x,y) for m = 1:x for n = 1:y mArr(m,n) = 0; end end end
Compare the time to allocate zeros to a matrix using nested loops and using the zeros
function.
x = 1000; y = 500; g = @() preAllocFcn(x,y); h = @() zeros(x,y); diffRunTime = timeit(g)-timeit(h)
Input Arguments
Function to be measured, specified as a function handle. f
is either a handle to a function that takes no input, or a handle to an anonymous function with an empty argument list.
Number of desired outputs from f
, specified as an integer. If the function specified by f
has a variable number of outputs, numOutputs
specifies which syntax timeit
uses to call the function. For example, the svd
function returns a single output, s
, or three outputs, [U,S,V]
. Set numOutputs
to 1
to time the s = svd(X)
syntax, or set it to 3
to time the [U,S,V] = svd(X)
syntax.
Tips
- The following actions result in unexpected output:
- Using
timeit
betweentic
andtoc
- Using
timeit
to time a function that includes calls totic
andtoc
- Using
timeit
recursively
- Using
Extended Capabilities
Version History
Introduced in R2013b