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.
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
Thanks for the video. It was very useful. Also, here’s an easier way to time quick actions like Tim’s ‘dosomething’:
>> tic; dosomething; t = toc
–Arkajit