timeit

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

Синтаксис

t = timeit(f)
t = timeit(f,numOutputs)

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

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

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

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

t2 = timeit(f,3)
t2 = 0.0035

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

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 рекурсивно

Алгоритмы

timeit вызывает заданную функцию многократно и вычисляет медиану измерений.

Введенный в R2013b