主要内容

轮廓

配置文件的执行时间

描述

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

例子

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

例子

轮廓行动option1 ...申请使用指定的选项启动或重新启动分析器。例如,简介简历 - 哈里奥尼重新启动Profiler并记录函数调用的序列。

例子

轮廓option1 ...申请设置指定的Profiler选项。如果Profiler打开并且您指定其中一个选项,MATLAB会抛出错误。要更改选项,首先指定关闭,然后指定新选项。

例子

P.=配置文件('INFO')停止Profiler并显示包含结果的结构。来访问由。生成的数据轮廓,使用此语法。

例子

S.=配置文件('status')返回带有Profiler状态信息的结构。

例子

全部折叠

s =配置文件('地位'
s = ProfilerStatus: 'off' DetailLevel: 'mmex' Timer: 'performance' HistoryTracking: 'timestamp' HistorySize: 5000000

打开探查器,并致电魔法函数。

轮廓n = 100;M =魔法(n);

在Profiler窗口中查看结果。

轮廓查看器

将结果保存为HTML。默认,专业产品将文件保存到profile_results当前工作文件夹中的子文件夹。

专业产品

创建文件myFunction.m使用此主函数和本地功能。

函数c = sqrt(square(a)+square(b));结束函数y =正方形(x)y = x。^ 2;结束

打开Profiler,并启用函数调用历史选项。配置一个呼叫到myfunction.函数。

轮廓-历史a = rand(5);B =兰特(5);c = myfunction(a,b);

保存配置文件结果。

p =概要文件(“信息”
p = functiontable:[2x1 struct] functionhistory:[2x6 double]时钟专制:3.3475E-07 ClockPeed: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: 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名称:'Matlab'开销:0

输入参数

全部折叠

指定为以下选项之一的分析器的控制选项。

选项 结果

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

停止分析器。

恢复

在不清除以前录制的统计信息的情况下重新启动Profiler。

清晰的

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

查看器

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

信息

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

状态

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

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

  • 配置文件option1…optionN

  • 个人简历选项1…optionN

  • 个人资料option1 ...申请

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

历史的选择

选项 结果
-nohistory.

记录基本分析统计数据。

-历史

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

时间戳

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

-historysize整数

指定要记录的函数条目和退出事件的数量。默认,historysize是5000000。如果函数调用的次数超过了指定的值historysize, 这轮廓函数继续记录除调用序列外的分析统计信息。

时钟选项

选项 结果
计时器“性能”

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

计时器的处理器

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

计时器“真实”的

使用操作系统报告的系统时间。此选项是最昂贵的昂贵的测量,并且对成本代码的性能产生最大影响。更改操作系统时钟的时间会影响此测量。

计时器的cpu

使用计算机时间和所有线程的时间总和。这个测量值与壁钟时间不同。例如,计算机时间暂停函数通常很小,但挂钟时间占实际暂停的时间,实际暂停的时间更大。

输出参数

全部折叠

Profiler Statistics,作为包含这些字段的结构返回。

描述

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仅收集数据,直到您修改了该函数。

函数函数

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

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

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

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

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

ClockPrecision

精密的时间测量轮廓函数,返回为

ClockSpeed

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

名称

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

开销

留作将来使用的

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

默认值

ProfilerStatus

“上”“关闭”

“关闭”

DetailLevel

“mmex”

“mmex”

计时器

“性能”“处理器”'中央处理器', 或者“真实”的

“性能”

HistoryTracking

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

“时间戳”

HistorySize

整数

5000000

限制

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

提示

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

  • 在MATLAB R2015b中,默认定时器是“性能”.在MATLAB的早期版本中,默认的分析器定时器是'中央处理器',哪些测量计算时间而不是挂钟时间。

之前介绍过的R2006a