timeit

Измерьте время, требуемое для работы функции

Описание

пример

t = timeit(f) измеряет время (в секундах) требуемый запустить функцию, заданную указателем на функцию f. Для того, чтобы выполнить устойчивое измерение, timeit вызывает заданную функцию многократно и возвращает медиану измерений. Если функция запускается быстро, timeit может много раз вызывать функцию.

пример

t = timeit(f,numOutputs) вызовы f с желаемым количеством выходных параметров, numOutputs. По умолчанию, timeit вызывает функциональный f с одним выходом (или никакими выходными параметрами, если функция не возвращает выходных параметров).

Примеры

свернуть все

Используйте timeit ко времени вызов функции к date. Этот пример использует указатель на функцию, которая не принимает входа.

f = @date;
t = timeit(f)
t = 5.9933e-05

Время комбинация нескольких математических операций над матрицей: матричное перемещение, поэлементно умножение и суммирование столбцов.

A = rand(12000,400);
B = rand(400,12000);
f = @() sum(A.'.*B, 1);
timeit(f)
ans = 0.0079

Определите, сколько времени это исполняется svd с одним выходным аргументом, s = svd(X).

X = rand(100);
f = @() svd(X);
t1 = timeit(f)
t1 = 0.0015

Сравните результаты с svd с тремя выходными аргументами, [U,S,V] = svd(X).

t2 = timeit(f,3)
t2 = 0.0030

Создайте короткую функцию, чтобы выделить матрицу с помощью вложенных циклов. Предварительное выделение массива с помощью вложенного цикла неэффективно, но показано здесь в иллюстративных целях.

function mArr = preAllocFcn(x,y)
for m = 1:x
    for n = 1:y
        mArr(m,n) = 0;
    end
end
end

Сравните время, чтобы выделить нули матрице с помощью вложенных циклов и с помощью zeros функция.

x = 1000;
y = 500;
g = @() preAllocFcn(x,y);
h = @() zeros(x,y);
diffRunTime = timeit(g)-timeit(h)
diffRunTime =

    0.1584

Входные параметры

свернуть все

Функция, которая будет измерена в виде указателя на функцию. f или указатель на функцию, которая не берет входа или указателя на анонимную функцию со списком пустых аргументов.

Количество желаемых выходных параметров от fВ виде целого числа. Если функция задана f имеет переменное количество выходных параметров, numOutputs задает который синтаксис timeit использование, чтобы вызвать функцию. Например, svd функция возвращает один выходной параметр, s, или три выходных параметров, [U,S,V]. Установите numOutputs к 1 ко времени s = svd(X) синтаксис или набор это к 3 ко времени [U,S,V] = svd(X) синтаксис.

Советы

  • Следующие действия приводят к неожиданному выходу:

    • Используя timeit между tic и toc
    • Используя timeit ко времени функция, которая включает вызовы tic и toc
    • Используя timeit рекурсивно

Введенный в R2013b