主要内容

配置文件

函数的配置文件执行时间

描述

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

例子

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

例子

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

例子

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

例子

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

例子

年代=概要(状态)返回带有分析器状态信息的结构。

例子

全部折叠

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

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

在Profiler窗口中查看结果。

配置文件查看器

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

profsave

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

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

将结果保存到mat文件中。

P = profile(“信息”)保存myprofiledatap
p = FunctionTable: [1x1 struct]功能历史:[2x2 double] ClockPrecision: 3.3475e-07 ClockSpeed: 3.0600e+09名称:'MATLAB'开销:0

创建文件myFunction.m使用这个主函数和局部函数。

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

打开分析器,并启用函数调用历史记录选项。属性的调用myFunction函数。

配置文件历史A = rand(5);B = rand(5);c = myFunction(a,b);

保存分析结果。

P = profile(“信息”
p = FunctionTable: [2x1 struct]功能历史:[2x6 double] ClockPrecision: 3.3475e-07 ClockSpeed: 3.0600e+09名称:'MATLAB'开销:0

显示函数调用历史。

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

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

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

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

配置文件时间戳
S = profile(“状态”
s = ProfilerStatus: 'off' DetailLevel: 'mmex' Timer: 'performance' HistoryTracking: 'timestamp' HistorySize: 5000000

输入参数

全部折叠

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

选项 结果

启动分析器,清除以前记录的概要统计信息。

停止分析器。

清晰的

停止Profiler并清除记录的统计信息。

查看器

停止分析器并在分析器窗口中显示结果。有关更多信息,请参见分析器.中不支持分析器用户界面万博1manbetxMATLAB在线™

信息

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

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

返回带有Profiler状态信息的结构。

一个或多个分析选项,指定为与历史和时钟选项表中的有效设置相对应的字符向量。

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

历史的选择

选项 结果
-nohistory

记录基本概要统计信息。

历史

记录基本概要统计信息,以及函数调用的精确序列,包括函数进入和退出事件。

时间戳

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

-historysize整数

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

时钟选项

选项 结果
计时器“性能”

默认值。使用操作系统提供的时钟上的时钟时间来测量性能。

计时器的处理器

直接使用来自处理器的挂钟时间。有时,您的节能设置或多个处理器的使用会影响此测量。

计时器“真实”的

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

计时器的cpu

使用计算机时间,并对所有线程进行时间求和。这种测量方法与挂钟的时间不同。例如,电脑时间为暂停函数通常很小,但实际暂停的时间更大。

输出参数

全部折叠

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

描述

FunctionTable

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

  • CompleteName—完整路径FunctionName

  • FunctionName—函数名称。如果函数是局部函数,FunctionName包括main函数。

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

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

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

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

  • TotalRecursiveTime- MATLAB不再使用此字段。

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

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

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

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

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

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

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

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

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

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

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

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

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

FunctionHistory

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

  • 第1行-函数进入或退出的指示器。分析器使用0,函数用a退出1

  • 第2行-内部函数信息结构的索引FunctionTable

  • 第3行-函数入口或出口时间戳的秒部分,指定为自操作系统Epoch时间以来经过的时间。属性时才返回该行时间戳指定历史记录选项。

  • 第4行-函数入口或出口时间戳的微秒部分,指定为自操作系统Epoch时间以来经过的时间。属性时才返回该行时间戳指定历史记录选项。

ClockPrecision

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

ClockSpeed

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

的名字

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

开销

保留以备将来使用。

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

默认值

ProfilerStatus

“上”“关闭”

“关闭”

DetailLevel

“mmex”

“mmex”

计时器

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

“性能”

HistoryTracking

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

“时间戳”

HistorySize

整数

5000000

限制

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

  • 如果被分析的代码使用间接(或相互)递归,分析器可能返回不准确的结果。如果递归是直接的(一个函数调用自己),那么分析器返回对该函数的非递归调用的总时间。属性的值,以确定概要代码中的函数是否递归(直接或间接)IsRecursiveFunctionTable条目。

  • 在计算代码段时,不支持分析器。万博1manbetx

提示

  • 要打开分析器用户界面,请使用概要文件查看器语法或参见分析器.中不支持分析器用户界面万博1manbetxMATLAB在线

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

版本历史

R2006a之前介绍