Измерение производительности: как избежать синхронизации назначения toc переменной - PullRequest
1 голос
/ 06 марта 2019
for i=1:1
    tic; M=R*R; toc;
    elapsed_time = toc;
    fprintf('Function took %8f seconds\n', elapsed_time)
    x = sprintf('%0.8f',t);
    tsum = t+tsum;
end

Это мой код и вывод:

Elapsed time is 0.000355 seconds.

Function took 0.000483 seconds

Первый раз (прошедшее время) - это время, которое вычисляет только M=R*R время, но когда я распечатываю свое рассчитанное время (функция взяла), значение времени увеличивается, потому что она также вычисляет операцию присваивания (elapsed_time = toc;).Как рассчитать время в переменной, игнорируя операцию присваивания?

1 Ответ

0 голосов
/ 06 марта 2019

Вы используете toc дважды без секунды tic.Вам просто нужно присвоить переменную выводу toc в первый раз.Поверьте мне, это присвоение переменной совсем не занимает времени:

for i=1:1

tic; M=R*R; 
elapsed_time = toc;

fprintf('Function took %8f seconds\n', elapsed_time)
x = sprintf('%0.8f',t);


tsum = t+tsum;

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...