主要内容

衡量代码的性能

性能定时功能概述

时间功能和秒表定时器功能,抽搐toc,使您能够计算代码运行所需的时间。使用时间函数用于严格度量函数执行时间。使用抽搐toc为不完整功能的较小部分代码估计时间。

有关代码性能的其他详细信息,如函数调用信息和各行代码的执行时间,请使用MATLAB®分析器。有关更多信息,请参见分析代码以提高性能

时间函数

要测量运行函数所需的时间,请使用时间函数。的时间函数多次调用指定的函数,并返回度量值的中值。它需要一个要测量的函数句柄,并返回典型的执行时间(以秒为单位)。假设你定义了一个函数,computeFunction,需要两个输入,xy,它们在您的工作空间中定义。可以使用下面的命令来计算执行函数的时间时间

f = @() myComputeFunction(x,y);%句柄函数时间(f)

代码的时间部分

要估计程序的一部分才能运行或比较程序的不同实现的速度,请使用秒表定时器功能,抽搐toc.调用抽搐开始计时,然后下一个toc读取经过的时间。

抽搐%程序部分时间。toc

有时程序运行得太快抽搐toc提供有用的数据。如果您的代码速度超过1/10秒,请考虑测量在循环中运行,然后将其平均值查找单个运行的时间。

cputime函数vs. tic/toc和timeit

建议您使用时间或者抽搐toc来衡量代码的性能。这些函数返回时钟时间。不像抽搐toc,时间函数多次调用您的代码,因此会考虑首次成本。

cputime函数度量所有线程的总CPU时间和总和。这个测量值与挂钟的时间不同时间或者抽搐/toc返回,可能会误导。例如:

  • CPU时间为暂停函数通常很小,但挂钟时间占MATLAB执行暂停的实际时间。因此,挂钟时间可能会变长。

  • 如果函数相同地使用4个处理核,那么CPU时间大约是壁钟时间的4倍。

衡量工作表现的技巧

当你在衡量代码的性能时,考虑以下提示:

  • 时间足够大的代码部分。理想情况下,您的代码应该超过1/10秒才能运行。

  • 将试图计时的代码放入函数中,而不是在命令行或脚本中计时。

  • 除非您试图度量首次成本,否则请多次运行代码。使用时间函数。

  • 避免清除所有在测量性能。有关更多信息,请参见清除函数。

  • 将输出赋值给一个变量,而不是让它默认为ANS.

另请参阅

|||

相关话题