Why tic/toc reports slower times the first five iterations?

2 次查看(过去 30 天)
for i = 1:10
tic
a=2*3;
toc
end
Elapsed time is 0.000094 seconds. Elapsed time is 0.000045 seconds. Elapsed time is 0.000075 seconds. Elapsed time is 0.000014 seconds. Elapsed time is 0.000159 seconds. Elapsed time is 0.000003 seconds. Elapsed time is 0.000002 seconds. Elapsed time is 0.000002 seconds. Elapsed time is 0.000001 seconds. Elapsed time is 0.000001 seconds.

回答(2 个)

Bruno Luong
Bruno Luong 2022-9-13
编辑:Bruno Luong 2022-9-13
If I remember, the JIT optimizer decides to kick in when the same code is detected by execution engine to run few times (5).
  1 个评论
Walter Roberson
Walter Roberson 2022-9-13
Historically, during the time period that Mathworks used the phrase JIT, then a limited set of operations were supported, and the optimization did not kick in the first pass.
However now that they use the term "execution engine", supposedly all execution goes through it, and supposedly it starts immediately, with the analysis at the time the code is parsed. Supposedly.
That said, in a fair number of tests, I have seen the second and third iterations take much of time.

请先登录,再进行评论。


Image Analyst
Image Analyst 2022-9-13
There is some randomness to it. Your computer does other things you know. Who knows what else it may have been doing while that code was running? When I run it I get different numbers every time, though the the first one is always the longest and they are much shorter than yours.
Elapsed time is 0.000002 seconds.
Elapsed time is 0.000002 seconds.
Elapsed time is 0.000001 seconds.
Elapsed time is 0.000000 seconds.
Elapsed time is 0.000000 seconds.
Elapsed time is 0.000000 seconds.
Elapsed time is 0.000000 seconds.
Elapsed time is 0.000000 seconds.
Elapsed time is 0.000000 seconds.
Elapsed time is 0.000000 seconds.

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by