It was about a year and a half ago when I posted about using the profiler to find bottlenecks in your MATLAB code [click here]. This week’s video covers two quick and easy ways of timing your code in MATLAB. This is how people would profile their code before the profiler, but it is still a useful set of tools to have.
In response to the survey, I have obtained new audio recording equipment. Let’s hope you like the results.
Sometimes you want to time code that runs for a teeny fraction of a second, and
tic ;
dosomething ;
t = toc
is not accurate. The profiler will also be inaccurate. (You might want to time this teeny fraction of a second becaus you want to use the dosomething function zillions of times inside a larger application). Here is a trick I like to use
tic ;
t = 0 ;
ntrials = 0 ;
while (t < 1)
dosomething ;
ntrials = ntrials + 1 ;
t = toc ;
end
t = t / ntrials ;
That way, you run “dosomething” enough times to accumulate a whole second, and then you compute the average time per call to dosomething.
Tim, an excellent suggestion. I would want to make sure that the time for dosomething >> the rest of the code in loop. For most applications it would be.
Thanks,
Doug
Leave a Reply
About
Bob, Brett & Jiro share their favorite user-contributed submissions from the File Exchange.
Sometimes you want to time code that runs for a teeny fraction of a second, and
tic ;
dosomething ;
t = toc
is not accurate. The profiler will also be inaccurate. (You might want to time this teeny fraction of a second becaus you want to use the dosomething function zillions of times inside a larger application). Here is a trick I like to use
tic ;
t = 0 ;
ntrials = 0 ;
while (t < 1)
dosomething ;
ntrials = ntrials + 1 ;
t = toc ;
end
t = t / ntrials ;
That way, you run “dosomething” enough times to accumulate a whole second, and then you compute the average time per call to dosomething.
Tim, an excellent suggestion. I would want to make sure that the time for dosomething >> the rest of the code in loop. For most applications it would be.
Thanks,
Doug