【发布时间】:2013-09-23 05:53:59
【问题描述】:
我已经用 4 种不同的方式写下了一个函数,我想给它计时。
到目前为止,我一直在做这件事:
tic
%//function 1
toc
tic
%//function 2
toc
tic
%//function 3
toc
tic
%//function 4
toc
但现在我想计算每个函数的时间数据(比如 100 次),然后计算每个函数花费的平均时间。我该怎么做?
我还在某处读到,打印的时间是经过的“挂钟”时间——所以它会受到我的计算机在 MATLAB 程序运行时所做的任何其他事情的影响。
那么有没有更好的方法呢?我听说有一个带有“profile on”命令的内置代码分析器的 MATLAB。谁能给我建议一下我可以使用它的方式?
我还咨询了以下网站:Timing code in MATLAB 和 Profiler to find code bottlenecks。
请建议如何在循环中多次执行此操作。提前致谢。
【问题讨论】:
-
如果您担心(短)过程会干扰您的测量结果。一般来说,查看时间的中位数而不是平均值是一个好主意。
-
我已经撤消了您上次的编辑,我认为它混淆了本次问答的重点,否则非常好。关于该编辑中的问题(以防它仍然有用):
imfilter尽可能分离内核(您可以edit它查看代码),并且可能conv2也这样做,不确定。无论如何,这里的执行时间似乎由图像加载时间决定,您应该将其排除在计时之外。
标签: performance matlab timer