Is tic/toc really reliable?

12 visualizaciones (últimos 30 días)
B. C.
B. C. el 5 de Dic. de 2014
Comentada: Andrew Newell el 5 de Dic. de 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 comentarios
B. C.
B. C. el 5 de Dic. de 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 el 5 de Dic. de 2014

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Language Fundamentals en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by