Is tic/toc really reliable?

12 Ansichten (letzte 30 Tage)
B. C.
B. C. am 5 Dez. 2014
Kommentiert: Andrew Newell am 5 Dez. 2014
Hello,
I am comparing 3 ways of calculating a simple stuff (cutting b in half until b<a), and tic/toc gives me VERY improbable results.
Here is my entire code (R2014b):
_____________________________________________
function [W,L,LC]=while_vs_log(a,b)
% test which one of a log2 and a while loop is the fastest to reduce b until it unders a.
if (b<a) fprintf('b must be >= a\n'); return; end
if (a<=0) fprintf('a must be >0\n'); return; end
%%log compact
ticLC = tic;
LC = b/2^ceil(log2(b/a));
tocLC = toc(ticLC);
%%log
ticL = tic;
n = ceil(log2(b/a));
L = b/2^n;
tocL = toc(ticL);
%%while
ticW = tic;
while (b>a) b=b/2; end
W=b;
tocW = toc(ticW);
%%compare
fprintf('while loop : %e µs\n', 1e6*tocW);
fprintf('log2 : %e µs\n', 1e6*tocL);
fprintf('log2 compact: %e µs\n\n',1e6*tocLC);
end
_____________________________________________
I called the function several times, changing absolutely nothing between each call.
Have a look at the output: sometimes, the while loop and the log2 computation appear to take the EXACT same time, which is absolutely unlikely.
My question is: how can it be? And how can I trust tic/toc if it sometimes fail? Or do I use it the wrong way?
  4 Kommentare
B. C.
B. C. am 5 Dez. 2014
@William : Yes, I will average several run times later, this was just a quick start.
@C.J. : Ok, I had no idea about jitter before.
Thanks to both of you.
Andrew Newell
Andrew Newell am 5 Dez. 2014

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Language Fundamentals finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by