timeit
функционируйте и функции секундомера, tic
и toc
, включите вы, чтобы измерить, сколько времени ваш код исполняетесь. Используйте timeit
функция для строгого измерения функционального времени выполнения. Используйте tic
и toc
оценить время для меньших фрагментов кода, которые не являются полными функциями.
Для дополнительных деталей об эффективности вашего кода, таких как информация о вызове функции и время выполнения отдельных строк кода, используют MATLAB® Профилировщик. Для получения дополнительной информации смотрите Профиль Ваш Код, чтобы Улучшать Производительность.
Чтобы измерить время, требуемое запускать функцию, используйте timeit
функция. timeit
вызовы функции заданная функция многократно, и возвращают медиану измерений. Это берет указатель на функцию, которая будет измерена, и возвращает типичное время выполнения в секундах. Предположим, что вы задали функцию, computeFunction
, это берет два входных параметров, x
и y
, это задано в вашей рабочей области. Можно вычислить время, чтобы выполнить функцию с помощью timeit
.
f = @() myComputeFunction(x,y); % handle to function
timeit(f)
Чтобы оценить, сколько времени фрагмент вашей программы исполняется или сравнить скорость различных реализаций фрагментов вашей программы, используйте функции секундомера, tic
и toc
. Вызов tic
запускает таймер и следующий toc
читает прошедшее время.
tic
% The program section to time.
toc
Иногда программы, запущенные слишком быстро для tic
и toc
обеспечить полезные данные. Если ваш код быстрее, чем 1/10 секунда, полагайте, что измерение его запускающийся в цикле, и затем среднем значении находит время для одного запуска.
Рекомендуется, чтобы вы использовали timeit
или tic
и toc
измерять уровень вашего кода. Эти функции возвращают тактовое стеной время. В отличие от этого, tic
и toc
, timeit
вызовы функции ваш код многократно, и, поэтому, рассматривают новые затраты.
cputime
функционируйте измеряет общее процессорное время и суммы через все потоки. Это измерение отличается с тактового стеной времени когда timeit
или tic
/toc
возвратитесь, и мог вводить в заблуждение. Например:
Процессорное время для pause
функция обычно мала, но тактовое стеной время составляет фактическое время, когда выполнение MATLAB приостановлено. Поэтому тактовое стеной время может быть более длительным.
Если ваша функция использует четыре ядра обработки одинаково, процессорное время могло бы быть приблизительно в четыре раза выше, чем тактовое стеной время.
Рассмотрите следующие советы, когда вы измерите уровень своего кода:
Время достаточно значительный фрагмент кода. Идеально, код, который вы синхронизируете, должен взять больше, чем 1/10 секунда, чтобы запуститься.
Поместите код, который вы пробуете ко времени в функцию вместо того, чтобы синхронизировать его в командной строке или в скрипте.
Если вы не пытаетесь измерить в первый раз стоимость, запустить ваш код многократно. Используйте timeit
функция.
Избегайте clear all
при измерении уровня. Для получения дополнительной информации смотрите clear
функция.
Присвойте свой выход переменной вместо того, чтобы позволить ему значение по умолчанию к ans
.