主要内容

衡量代码的性能

性能时序函数概述

时代功能和秒表定时器功能,tTOC.,使您能够花时间您的代码运行的时间。使用时代函数用于函数执行时间的严格测量。用tTOC.要估算不完整功能的较小部分的时间。

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

时间函数

要测量运行函数所需的时间,请使用时代功能。这时代函数多次调用指定的功能,并返回测量的中位数。它需要一个要测量的函数的句柄,并以秒为单位返回典型的执行时间。假设您已定义了一个函数,计算,这需要两个输入,Xy,它在工作区中定义。您可以计算执行功能的时间时代

f = @()mycomputerfunction(x,y);%句柄到功能Timeit(f)

代码的时间部分

要估计程序的一部分运行所需的时间或比较程序的一部分不同实现的速度,请使用秒表计时器函数,tTOC.。调用t启动计时器,然后是下一个TOC.读完经过的时间。

t%程序部分到时间。TOC.

有时程序运行太快了tTOC.提供有用的数据。如果代码的速度超过1/10秒,可以考虑测量它在循环中运行的时间,然后计算一次运行的平均时间。

Cuptime函数与TIC / TOC和Timit

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

轰动函数测量所有线程的总CPU时间和总和。该测量与壁钟时间不同时代或者t/TOC.返回,并且可能会误导。例如:

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

  • 如果您的函数同样使用四个处理核心,则CPU时间大约比壁钟时间高的四倍。

测量性能的提示

在测量代码的性能时,请考虑以下提示:

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

  • 将您尝试过的代码进入函数而不是在命令行或脚本内时定时。

  • 除非您尝试衡量第一次成本,否则多次运行代码。使用时代功能。

  • 避免清除所有测量性能时。有关更多信息,请参阅清晰的功能。

  • 将您的输出分配给变量,而不是让它默认到

也可以看看

|||

相关的话题