Tic, Toc Behavior

11 views (last 30 days)
Hi,
I'm curious about the behaviour of Tic-Toc.
Tic-Toc excutes faster in a loop than outside a loop.
Does anyone know exactly why? Some sort of JIT compiliation issue?
Loop Version
TicTocLoop = 0;
for i =1:1:1
tic;
TicTocLoop(i) = toc;
end
TicTocLoop
TicTocLoop = 4.8400e-05
Non-Loop Version
TicTocValue = 0;
tic;
TicTocValue = toc;
TicTocValue
TicTocValue = 0.0011
My setup is
MATLAB 2020b
Windows 10
Using Live Script
Thanks for any help
Regards
Cillian

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 19 Nov 2020
for the sake of fair comparison, the code below should give you reasonable results
%%
TicTocLoop=0;
TicTocValue=0;
for i =1:1:1
tic;
TicTocLoop = toc
end
tic;
TicTocValue=toc
TicTocLoop =
2.7100e-05
TicTocValue =
1.2300e-05
TicTocLoop =
2.4100e-05
TicTocValue =
1.3000e-05
TicTocLoop =
2.4400e-05
TicTocValue =
1.3300e-05
  1 Comment
Cillian Hayde
Cillian Hayde on 19 Nov 2020
Hey Fangjun Jiang,
It appears your answer has helped me. It appears to be a live editor issue.
To my eye, tic-toc in a loop is the same for both the m-file and the mlx-file.
The non-looped version is the fastest in the m-file and slowest in the mlx-file.
I personally have no notion why this is, but I will just note it!
Thanks for that!
Regards
Cillian

Sign in to comment.

More Answers (1)

John D'Errico
John D'Errico on 19 Nov 2020
Using tic and toc to masure any time is a bad idea.
Using tic and toc to masure any time is a bad idea.
Using tic and toc to masure any time is a bad idea.
There, I've said it three times, so it must be true.
Use better tools, best, use timeit. Also you can use the profiler tool, although profiled code will run more slowly, since MATLAB needs to maintian statistics on everything.
  2 Comments
John D'Errico
John D'Errico on 19 Nov 2020
True about the misused statement. :)
And at times, I use tic and toc myself. But I only ever do that if I warm up the functions in advance, and only for cases when the multiple runs that timeit will perform would be way to time intensive.

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!