以下命令控制显示函数信息的方式。
使用当前选定的度量写入函数列表。函数列表包括选定进行函数显示的装入对象中的所有函数,以及使用 object_select 命令隐藏其函数的任何装入对象。
可以使用 limit 命令限制写入的行数(请参见控制输出的命令)。
列显的缺省度量是独占和包含用户 CPU 时间,以秒和总程序度量百分比表示。可以使用 metrics 命令更改当前显示的度量,该命令必须在发出 functions 命令之前发出。也可以在 .er.rc 文件中使用 dmetrics 命令更改缺省值。
对于用 Java 编程语言编写的应用程序,显示的函数信息因视图模式的设置而异,视图模式可设置为用户、专家或计算机。
用户模式按名称显示每个方法,将已解释的方法和 HotSpot 编译的方法的数据聚集在一起;它还抑制非用户 Java 线程的数据。
专家模式将 HotSpot 编译的方法与已解释的方法分开,且不抑制非用户 Java 线程。
计算机模式在进行解释时根据 Java 虚拟机 (Java Virtual Machine, JVM) 软件显示已解释的 Java 方法的数据,并对指定的方法报告使用 Java HotSpot 虚拟机编译的方法的数据。显示所有线程。
在所有三种模式下,对于 Java 目标调用的任何 C、C++ 或 Fortran 代码,都以通用的方法报告数据。
指定函数列表度量的选项。字符串 metric_spec 可以是恢复缺省度量选项的关键字 default,也可以是由冒号分隔的一系列度量关键字。以下示例说明一个度量列表。
% metrics i.user:i%user:e.user:e%user |
此命令指示 er_print 实用程序显示以下度量:
用秒表示的包含用户 CPU 时间
包含用户 CPU 时间百分比
用秒表示的独占用户 CPU 时间
独占用户 CPU 时间百分比
缺省情况下,所用的度量设置基于从 .er.rc 文件处理的 dmetrics 命令,如设置缺省值的命令中所述。如果 metrics 命令将 metric_spec 显式设置为 default,则根据所记录的数据恢复缺省设置。
重置度量时,会在新列表中设置缺省排序度量。
如果省略 metric_spec,则显示当前的度量设置。
除了设置函数列表的度量外,metrics 命令还将调用方-被调用方的度量以及数据派生输出的度量设为相同的设置。
处理 metrics 命令时,将列显一条消息,指明当前的度量选项。对于前面的示例,消息如下。
current: i.user:i%user:e.user:e%user:name |
有关度量列表的语法的信息,请参见度量列表。要查看可用度量的列表,请使用 metric_list 命令。
如果 metrics 命令中包含错误,则忽略该命令并显示一条警告,但先前的设置仍然有效。
按 metric_spec 对函数列表进行排序。度量名称中的 visibility 不影响排序顺序。如果在 metric_spec 中指定了多个度量,则使用第一个可见度量。如果指定的度量都不可见,则忽略该命令。可以在 metric_spec 前加上减号 (-) 以指定反向排序。
缺省情况下,度量排序设置基于从 .er.rc 文件处理的 dsort 命令,如设置缺省值的命令中所述。如果 sort 命令将 metric_spec 显式设置为 default,则使用缺省设置。
字符串 metric_spec 为度量列表中所述的度量关键字之一,如以下示例所示。
% sort i.user |
此命令指示 er_print 实用程序按包含用户 CPU 时间对函数列表进行排序。如果度量不在已装入的实验中,则列显一条警告并忽略该命令。完成命令时,将列显排序度量。
为函数列表中的每个函数写入摘要面板。可以使用 limit 命令限制写入的面板数(请参见控制输出的命令)。
摘要度量面板包括函数或装入对象的名称、地址和大小(对于函数,还包括源文件、目标文件和装入对象的名称),以及选定函数或装入对象的所有记录的度量(包括以值和百分比形式表示的独占和包含度量)。
为指定的函数写入摘要面板。当有多个函数具有相同的名称时,需要使用可选参数 N。为具有给定函数名称的第 N 个函数写入摘要度量面板。在命令行上提供命令时,N 是必需的;如果不需要它,则将其忽略。当以交互方式提供不带 N 的命令但又需要 N 时,则会列显具有对应 N 值的函数列表。
有关函数的摘要度量的说明,请参见对 fsummary 命令的描述。