主要内容

配置文件

配置函数的执行时间

描述

使用Profiler跟踪执行时间。知道MATLAB的执行时间®代码帮助您调试和优化它。有关Profiler的用户界面的信息,请参见分析代码以提高性能

例子

配置文件行动分析函数的执行时间。使用行动启动、停止和重新启动Profiler,并查看或清除profile统计信息。例如,剖面上启动分析器。

例子

配置文件行动option1……optionN使用指定的选项启动或重启分析器。例如,配置文件恢复历史重新启动分析器并记录函数调用的顺序。

例子

配置文件option1……optionN设置指定的分析器选项。如果分析器是打开的,并且您指定了其中一个选项,MATLAB将抛出一个错误。要更改选项,首先指定配置文件了,然后指定新选项。

例子

p=概要文件(“信息”)停止分析器并显示包含结果的结构。访问由。生成的数据配置文件,使用此语法。

例子

年代=概要(状态)返回一个包含分析器状态信息的结构。

例子

全部折叠

s =概要文件(“状态”
' s = ProfilerStatus: 'off' DetailLevel: 'mmex' Timer: 'performance' HistoryTracking: 'timestamp' HistorySize: 5000000

打开分析器,并调用魔法函数。

配置文件n = 100;M =魔法(n);

在Profiler窗口中查看结果。

配置文件查看器

将结果保存为HTML。默认情况下,profsave将文件保存到profile_results当前工作文件夹中的子文件夹。

profsave

创建文件myFunction.m使用main函数和local函数。

函数myFunction(a,b) =√(a)+√(b);结束函数Y = x ^2;结束

打开分析器,并启用函数调用历史选项。配置一个呼叫到myFunction函数。

配置文件历史一个=兰德(5);b =兰德(5);c = myFunction (a, b);

保存配置文件结果。

p =概要文件(“信息”
p = FunctionTable: [2x1 struct] FunctionHistory: [2x6 double] ClockPrecision: 3.3475e-07 ClockSpeed: 3.0600e+09 Name: 'MATLAB'开销:0

显示函数调用历史记录。

p.FunctionHistory
Ans = 0 0 1 0 1 1 1 2 2 2 1

通过遍历函数调用历史记录来显示函数的入口和出口信息。

numEvents =大小(p.FunctionHistory, 2);n = 1:numEvents name = p.FunctionTable(p.FunctionHistory(2,n)).FunctionName;如果p.FunctionHistory(1,n) == 0“进入”名称]);其他的disp ([“退出”名称]);结束结束
Entered myFunction Entered myFunction>square Exited myFunction>square Entered myFunction>square Exited myFunction>square Exited myFunction

将函数调用历史记录设置为默认值。

配置文件时间戳

打开分析器,并调用魔法函数。

配置文件n = 100;M =魔法(n);

将结果保存到mat文件中

p =概要文件(“信息”)保存myprofiledatap
p = FunctionTable: [1x1 struct] FunctionHistory: [2x2 double] ClockPrecision: 3.3475e-07 ClockSpeed: 3.0600e+09 Name: 'MATLAB' Overhead: 0

输入参数

全部折叠

作为这些选项之一指定的分析器的控件选项。

选项 结果

启动Profiler,清除以前记录的配置文件统计信息。

停止分析器。

的简历

重新启动分析器,不清除以前记录的统计信息。

清晰的

停止分析器并清除记录的统计信息。

查看器

停止分析器并在分析器窗口中显示结果。有关更多信息,请参见分析代码以提高性能.中不支持Profiler用户界面金宝appMATLAB在线™

信息

停止分析器并返回一个包含结果的结构。

状态

返回一个包含分析器状态信息的结构。

一个或多个分析选项,指定为与历史记录和时钟选项表中的有效设置相对应的字符向量。你可以使用以下语法之一指定一个或多个选项:

  • Profile on option1…optionN

  • 个人简历选项1…optionN

  • 概要option1……optionN

如果更改了Profiler设置,则在停止Profiler或清除统计信息时,这些设置将保持不变。要恢复到默认的Profiler行为,请手动将选项设置为默认值或启动一个新的MATLAB会话。

历史的选择

选项 结果
-nohistory

记录基本配置统计信息。

历史

记录基本的分析统计信息,以及函数调用的确切顺序,包括函数进入和退出事件。

时间戳

默认值。记录基本的分析统计信息,以及函数调用的确切序列,包括入口和退出事件,以及每个事件的时间戳。

-historysize整数

指定要记录的函数入口和退出事件的数量。默认情况下,historysize是5000000。如果函数调用的次数超过了指定的historysize,配置文件函数继续记录分析统计信息,而不是调用序列。

时钟选项

选项 结果
计时器“性能”

默认值。使用操作系统提供的时钟中的wall-clock时间来衡量性能。

计时器的处理器

直接从处理器使用挂钟时间。有时您的省电设置或多处理器的使用会影响此度量。

计时器“真实”的

使用操作系统报告的系统时间。这个选项是计算代价最大的度量方法,并且对概要代码的性能影响最大。更改操作系统时钟上的时间会影响此度量。

计时器的cpu

使用计算机时间和所有线程的总和时间。此测量值与挂钟时间不同。例如,电脑时间暂停函数通常较小,但wall-clock时间占实际暂停时间,实际暂停时间较大。

输出参数

全部折叠

分析器统计信息,作为包含这些字段的结构返回。

描述

FunctionTable

函数统计,作为结构数组返回。数组中的每个结构都包含分析期间调用的一个函数或局部函数的信息。每个结构包含以下字段:

  • CompleteName-完整路径FunctionName

  • FunctionName-函数名。如果函数是局部函数,FunctionName包括主要功能。

  • 文件名-完整路径FunctionName,带有文件扩展名。如果函数是局部函数,文件名是主函数的完整路径。

  • 类型-功能类型。例如MATLAB函数、mex函数、局部函数或嵌套函数。

  • 我会-被分析的代码调用函数的次数。

  • TotalTime-在函数及其子函数上花费的总时间。

  • TotalRecursiveTime- MATLAB不再使用这个领域。

  • 孩子们-函数调用的函数信息。数组中的每个条目都包含关于一个子函数的信息。该结构包含以下字段:

    • 指数-索引到子函数内部的信息结构FunctionTable

    • 我会-被分析的代码调用子函数的次数。

    • TotalTime-花在子函数上的总时间。

  • 父母—父功能信息FunctionName.数组中的每个结构都包含一个父元素的信息。该结构包含以下字段:

    • 指数-索引父函数内部的信息结构FunctionTable

    • 我会-父函数调用该函数的次数。

  • ExecutedLines-数组,包含被profile函数的逐行详细信息。

    • 列1 -中执行的代码行的行号文件名

    • 第2列-被分析的代码执行代码行的次数。

    • 第3列-在代码行上花费的总时间。列3项的总和不一定等于TotalTime

  • IsRecursive—函数是否递归指标。如果值为1真正的),则该函数是递归的。如果值为0)时,该函数是非递归的。

  • PartialData—profile统计是否不完整指标。如果是逻辑值1真正的),该函数在分析期间被修改。例如,如果您编辑了函数或从内存中清除了它。在这种情况下,Profiler只收集您修改函数之前的数据。

FunctionHistory

函数调用历史记录,以数组形式返回。

  • 第1行-功能入口或出口指示符。属性记录函数项0,函数退出1

  • 第2行-索引内部的功能信息结构FunctionTable

  • 第3行—函数条目或退出时间戳的秒部分,指定为从操作系统Epoch时间开始经过的时间。此行仅在时间戳设置历史记录选项。

  • 第4行—函数条目或退出时间戳的微秒部分,指定为自操作系统Epoch时间以来所经过的时间。此行仅在时间戳设置历史记录选项。

ClockPrecision

时间测量的精度配置文件函数,返回为

ClockSpeed

估计的CPU时钟速度,返回为

的名字

分析器的名称,作为字符数组返回。

开销

留作将来使用。

分析器状态,作为包含这些字段的结构返回。

默认值

ProfilerStatus

“上”“关闭”

“关闭”

DetailLevel

“mmex”

“mmex”

计时器

“性能”“处理器”“cpu”,或“真实”的

“性能”

HistoryTracking

“上”“关闭”,或“时间戳”

“时间戳”

HistorySize

整数

5000000

限制

  • MATLAB Profiler在代码运行时执行计算并收集数据。这需要额外的计算资源,并且会导致激活Profiler的代码运行得比未激活的代码慢。因此,Profiler测量的执行时间应该被视为代码性能的相对度量,而不是绝对度量。

  • 如果被分析的代码使用间接(或相互)递归,则Profiler可能返回不准确的结果。如果递归是直接的(单个函数调用自身),则Profiler将返回非递归调用该函数的总时间。要确定概要代码中的函数是否递归(直接或间接),请检查IsRecursive字段FunctionTable条目。

  • 在计算代码段时不支持Profiler。金宝app

提示

  • 要打开Profiler用户界面,请使用概要文件查看器语法或看到分析代码以提高性能.中不支持Profiler用户界面金宝appMATLAB在线

  • 在MATLAB R2015b中,默认定时器为“性能”.在以前的MATLAB版本中,默认分析器计时器是“cpu”,它测量的是计算时间而不是时钟时间。

之前介绍过的R2006a