测量程序的性能
性能定时函数概述
的时间
函数和秒表计时器函数,抽搐
而且toc
,使您能够计算代码运行所需的时间。使用时间
函数用于严格测量函数执行时间。使用抽搐
而且toc
估计不是完整函数的较小部分代码的时间。
有关代码性能的其他细节,如函数调用信息和个别代码行的执行时间,请使用MATLAB®分析器。有关更多信息,请参见提高性能的配置文件.
时间函数
要测量运行函数所需的时间,请使用时间
函数。的时间
函数多次调用指定的函数,并返回度量值的中值。它接受要度量函数的句柄,并返回典型的执行时间(以秒为单位)。假设你已经定义了一个函数,computeFunction
,它需要两个输入,x
而且y
,它们在您的工作区中定义。可以使用。来计算执行函数的时间时间
.
f = @() myComputeFunction;函数时间的%句柄
代码的时间部分
要估计程序的一部分运行需要多长时间,或者比较程序部分不同实现的速度,可以使用秒表计时器函数,抽搐
而且toc
.调用抽搐
开始计时器,然后下一个toc
读取运行时间。
程序分段到时间。toc
有时程序运行太快抽搐
而且toc
提供有用的数据。如果代码的速度超过1/10秒,可以考虑在循环中测量它的运行速度,然后取平均值来计算单次运行的时间。
cputime函数vs. tic/toc和timeit
建议您使用时间
或抽搐
而且toc
来度量代码的性能。这些函数返回挂钟时间。不像抽搐
而且toc
,时间
函数多次调用代码,因此要考虑首次调用的成本。
的cputime
函数度量所有线程的总CPU时间和总和。这种测量方法不同于挂钟的时间时间
或抽搐
/toc
返回,并可能误导。例如:
的CPU时间
暂停
函数通常很小,但挂钟时间占MATLAB执行暂停的实际时间。因此,挂钟的时间可能更长。如果您的函数平均使用四个处理核心,那么CPU时间可能大约比墙壁时钟时间高4倍。
衡量工作表现的技巧
当你在测量代码的性能时,考虑以下提示:
时间是代码的重要部分。理想情况下,您计时的代码运行时间应该超过1/10秒。
将您试图计时的代码放入函数中,而不是在命令行或脚本中计时。
除非您试图测量首次成本,否则请多次运行您的代码。使用
时间
函数。避免
清除所有
在测量性能。有关更多信息,请参见清晰的
函数。将输出分配给一个变量,而不是让它默认为
答
.