主要内容

配置文件

函数的概要文件执行时间

描述

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

例子

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

例子

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

例子

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

例子

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

例子

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

例子

全部折叠

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

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

在Profiler窗口中查看结果。

配置文件查看器

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

profsave

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

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

将结果保存到mat文件中。

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

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

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

打开Profiler,并启用函数调用历史记录选项。配置文件调用myFunction函数。

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

保存分析结果。

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

显示函数调用历史。

p.FunctionHistory
Ans = 0 0 1 0 1 1 1 2 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([“进入”名称]);其他的disp ([“退出”名称]);结束结束
输入myFunction输入myFunction>square退出myFunction>square退出myFunction>square退出myFunction>square退出myFunction

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

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

输入参数

全部折叠

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

选项 结果

启动Profiler,清除以前记录的任何概要统计信息。

停止分析器。

清晰的

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

查看器

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

信息

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

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

返回一个包含Profiler状态信息的结构。

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

如果您更改了剖析器设置,那么当您停止剖析器或清除统计信息时,这些设置仍然保留。要恢复到默认的Profiler行为,手动将选项设置为默认值或启动一个新的MATLAB会话。

历史的选择

选项 结果
-nohistory

记录基本的概要分析统计信息。

历史

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

时间戳

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

-historysize整数

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

时钟选项

选项 结果
计时器“性能”

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

计时器的处理器

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

计时器“真实”的

使用操作系统报告的系统时间。这个选项是计算开销最大的度量,对分析代码的性能影响最大。更改操作系统时钟上的时间将影响此测量。

计时器的cpu

使用计算机时间和所有线程的总和时间。这种测量方法不同于挂钟时间。例如,电脑时间为暂停函数通常很小,但是挂钟时间占实际暂停时间的比例更大。

输出参数

全部折叠

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

描述

FunctionTable

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

  • CompleteName-完整路径FunctionName

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

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

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

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

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

  • TotalRecursiveTime- MATLAB不再使用这个字段。

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

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

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

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

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

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

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

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

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

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

    • 第3列-用于代码行的总时间。第3列条目的和不一定等于TotalTime

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

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

FunctionHistory

函数调用历史记录,作为数组返回。

  • 第1行-函数进入或退出的指示符。Profiler记录函数条目0,函数用a退出1

  • 第2行-索引其中的函数信息结构FunctionTable

  • 第3行——函数进入或退出时间戳的秒部分,指定为自操作系统Epoch时间以来经过的时间。仅当时间戳指定历史选项。

  • 第4行——函数进入或退出时间戳的微秒部分,指定为自操作系统Epoch time以来经过的时间。仅当时间戳指定历史选项。

ClockPrecision

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

ClockSpeed

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

的名字

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

开销

保留以备将来使用。

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

默认值

ProfilerStatus

“上”“关闭”

“关闭”

DetailLevel

“mmex”

“mmex”

计时器

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

“性能”

HistoryTracking

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

“时间戳”

HistorySize

整数

5000000

限制

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

  • 如果剖析代码使用间接(或相互)递归,剖析器可能返回不准确的结果。如果递归是直接的(一个函数调用自身),那么Profiler将返回对函数的非递归调用的总时间。函数的值是否为递归(直接或间接),以确定所分析代码中的函数是否为递归IsRecursive字段FunctionTable条目。

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

提示

  • 要打开分析器用户界面,请使用概要文件查看器语法或看到分析器.中不支持Profiler用户界面MATLAB在线

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

版本历史

之前介绍过的R2006a

Baidu
map