主要内容

配置文件

函数的配置文件执行时间

描述

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

例子

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

例子

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

例子

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

例子

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

例子

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

例子

全部收缩

s =概要文件(“状态”
s = profilerstatus:'关闭'detaillevel:'mmex'计时器:'performance'historytracking:'timestamp'历史悠久:5000000

打开剖析器,并调用魔法功能。

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

在Profiler窗口中查看结果。

配置文件观众

将结果保存为HTML。默认情况下,profsave将文件保存到profile_results.子文件夹中。

profsave

创建文件myfunction.m ..使用此主函数和局部函数。

函数c = sqrt(square(a)+square(b));结尾函数Y = x ^2;结尾

打开Profiler,并启用函数调用历史记录选项。呼吁呼叫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' Overhead: 0

显示函数调用历史记录。

p.FunctionHistory
ANS = 0 0 1 0 1 1 1 1 2 2 2 2 1

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

numevents = size(p.functionhistory,2);为了n = 1:numevents name = p.fclottiable(p.functionhistory(2,n))。functionname;如果P.FunctionHistory(1,N)== 0 Disp(['进入'名称]);别的DISP(['退出'名称]);结尾结尾
进入MyFunded进入MyFunction> Square退出MyFunction> Square进入MyFunction> Square退出MyFunction> Square退出MyFunction

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

配置文件时间戳

打开剖析器,并调用魔法功能。

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

将结果保存到mat文件中

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

输入参数

全部收缩

作为这些选项之一指定的剖析器的控制选项。

选项 结果

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

离开

停止分析器。

的简历

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

清晰的

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

观众

停止Profiler并在Profiler窗口中显示结果。有关更多信息,请参见配置您的代码以提高性能.中不支持Profiler用户界面万博1manbetxMATLAB在线™

信息

停止Profiler并返回包含结果的结构。

地位

使用Profiler状态信息返回一个结构。

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

  • option1 ...申请

  • 个人简历选项1…optionN

  • 概要option1……optionN

如果更改分析器设置,则停止探查器或清除统计信息时,设置将持续。要恢复为默认分析器行为,请手动将选项设置为默认值或启动新的MATLAB会话。

历史选择

选项 结果
-nohistory

记录基本的分析统计数据。

历史

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

时间戳

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

-HistorySize.整数

指定要记录的函数进入和退出事件的数量。默认情况下,historysize是5000000。如果函数调用的次数超过了指定的值historysize,配置文件功能继续记录除了呼叫序列之外的分析统计数据。

时钟选项

选项 结果
计时器“性能”

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

-timer'处理器'

直接从处理器使用时钟时间。有时,节能设置或使用多个处理器会影响此度量。

计时器“真实”的

请使用操作系统上报的系统时间。该选项是计算代价最高的度量,对分析代码的性能影响最大。更改操作系统时钟上的时间会影响此度量。

- 模拟'CPU'

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

输出参数

全部收缩

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

场地

描述

FunctionTable

函数统计信息,作为结构阵列返回。阵列中的每个结构包含有关在分析期间调用的一个函数或本地函数的信息。每个结构都包含以下字段:

  • 全名-到的完整路径FunctionName

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

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

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

  • 我会- 次数代码称为函数的次数。

  • 总时间- 在功能和子功能中所花费的总时间。

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

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

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

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

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

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

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

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

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

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

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

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

  • isrocursive.—判断函数是否递归的指标。如果值为1真正的),则函数是递归的。如果值为0错误的),则函数是非递归的。

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

FunctionHistory

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

  • 第1行 - 函数输入或退出的指示。Profiler记录功能条目0和功能退出1

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

  • 第3秒 - 函数条目或退出时间戳的第3秒部分,指定为自操作系统时代时间以来已经过去的时间。这行仅返回如果时间戳历史记录选项已指定。

  • 第4行 - 函数条目或退出时间戳的微秒部分,指定为自操作系统时代时间以来已经过去的时间。这行仅返回如果时间戳历史记录选项已指定。

ClockPrecision.

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

ClockSpeed

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

的名字

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

开销

保留未来使用。

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

场地

价值

默认值

profilertatus.

'上''离开'

'离开'

DetailLevel

'mmex'

'mmex'

计时器

'表现''处理器'“cpu”,或'真实的'

'表现'

HistoryTracking

'上''离开',或'时间戳'

'时间戳'

历史悠久

整数

5000000

限制

  • 如果被分析的代码使用间接(或相互)递归,MATLAB分析器可能返回不准确的结果。如果递归是直接的(单个函数调用本身),则Profiler将返回对该函数的非递归调用的总时间。要确定被分析代码中的函数是否递归(直接或间接),请检查isrocursive.田野FunctionTable入口。

尖端

  • 要打开Profiler用户界面,请使用个人资料查看器语法或看到配置您的代码以提高性能.中不支持Profiler用户界面万博1manbetxMATLAB在线

  • 在MATLAB R2015b中,默认定时器是'表现'.在MATLAB的早期版本中,默认的分析器定时器是“cpu”,它衡量的是计算时间,而不是墙壁时间。

之前介绍过的R2006a