timeit функции и функции таймера секундомера, tic и toc, время выполнения кода. Используйте timeit функция для строгого измерения времени выполнения функции. Использовать tic и toc для оценки времени для небольших частей кода, которые не являются полными функциями.
Для получения дополнительной информации о производительности кода, например, информации о вызове функции и времени выполнения отдельных строк кода, используйте приложение MATLAB ® Profiler. Дополнительные сведения см. в разделе Профилирование кода для повышения производительности.
Для измерения времени, необходимого для выполнения функции, используйте 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.