13.6性能剖析

Octave支持在每个函数级别上分析代码执行情况。如果启用了评测,则在运行Octavecode时会记录对函数的每次调用(支持内置函数、运算符、oct和mex文件中的函数、Octave代码中的用户定义函数和匿名函数)。之后,这些数据可以帮助分析代码行为,尤其有助于在代码中找到“热点”,这些“热点”占用了大量计算时间,是花费优化精力的最佳目标。

分析的主要命令是性能剖析,可用于启动或停止探查器,也可用于随后查询收集的数据。数据以Octave数据结构返回,然后可以通过其他子程序或工具对其进行检查或进一步处理。

 
: profile on
: profile off
: profile resume
: profile clear
: S = profile ("status")
: T = profile ("info")

控制内置探查器。

上的配置文件

启动探查器。将清除以前收集的所有数据。

剖面关闭

停止分析。收集到的数据稍后可以用检索和检查T=配置文件(“信息”).

性能剖析清除

清除所有收集的探查器数据。

个人资料简历

在不清除旧数据的情况下重新启动分析。所有新收集的统计信息都会添加到现有的统计信息中。

S=配置文件(“状态”)

返回一个结构体,其中包含有关生产者当前状态的信息。目前,唯一的字段是探查器状态哪一个on.

T=配置文件(“信息”)

返回结构体中收集的分析统计信息T。平面性能剖析在字段中返回函数表它是一个结构体数组,每个条目对应于被调用的函数,并且存在其分析统计信息。此外,该field等级制的包含层次调用树。每个节点都有一个索引到函数表识别它对应的函数,以及在调用树中用于此级别的调用次数和时间的数据字段。

详见: 专业表演, 专业探索.

对收集的数据进行概述的一种简单方法是专业表演。此函数获取从返回的探查器数据性能剖析作为输入并打印平面性能剖析,例如:

函数属性时间调用-------------------------------------------->myfib R 2.195 13529二进制<=0.061 13529二进制-0.050 13528二进制+0.026 6764

这表明大部分运行时间都花在了执行函数上myfib,以及一些小部分评估列出的二进制运算符。此外,还显示了函数被调用的频率,探查器还记录了它是递归的。

 
: profshow (data)
: profshow (data, n)
: profshow ()
: profshow (n)

显示每个函数的平面探查器结果。

打印出最关键的探查器数据(执行时间、调用次数)n函数。结果按在每个函数中花费的总时间降序排列。如果n未指定,默认为20。

输入数据返回的结构体是个人资料(“信息”)如果未指定,专业表演将使用当前配置文件数据集。

属性列显示R用于递归函数,对于所有其他函数类型为空。

详见: 专业探索, 性能剖析.

 
: profexport (dir)
: profexport (dir, data)
: profexport (dir, name)
: profexport (dir, name, data)

将探查器数据导出为HTML。

将分析数据导出到数据转换为文件夹中的一系列HTML文件目录。初始文件将为数据/index.html.

如果name如果指定了,则它必须是一个包含要导出的配置文件的“名称”的字符串。此名称包含在HTML中。

输入数据返回的结构体是个人资料(“信息”)如果未指定,专业出口将使用当前配置文件数据集。

详见: 专业表演, 专业探索, 性能剖析.

 
: profexplore ()
: profexplore (data)

交互式地探索分层探查器输出。

假设数据是从返回的具有配置文件数据的结构体性能剖析信息),此命令打开一个交互式提示,可用于探索调用树。类型帮助以获取可能的命令列表。如果数据省略,个人资料(“信息”)被调用并在其位置使用。

详见: 性能剖析, 专业表演.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号