第三十九章 使用^%SYS.MONLBL检查例程性能 - 开始监控
开始监控
可以选择要监控的例程和流程以及要收集的指标。集合的这些特征会一直保留到停止监控为止。按以下顺序向例程提供监视收集信息:
- 例程名称 – 输入要监控的例程名称列表。只能选择可从当前命名空间访问的例程。输入例程名称时不要使用前导
^
;名称区分大小写。可以使用星号 (*
) 通配符来选择多个例程。输入最后一个例程名称后按Enter
两次以结束列表。 Select Metrics to monitor
– 输入选择的指标类型的数量。最小指标的默认值为1
。
Select Metrics to monitor 1) Monitor Minimal Metrics 2) Monitor Lines (Coverage) 3) Monitor Global Metrics 4) Monitor All Metrics 5) Customize Monitor Metrics Enter the number of your choice: <1>
每个选项包含哪些指标的说明如下:
- 最小指标 - 监控下表中描述的指标。
Metric - | Description |
Metric#: 34 - RtnLine | 例程行执行次数 |
Metric#: 51 - Time | 执行该行所花费的时钟时间 |
Metric#: 52 - TotalTime | 该行的总时钟时间,包括该行调用的子例程所花费的时间 |
时间度量是时钟时间,以秒为单位进行测量。
注意:递归代码的总时间当一个例程包含递归代码时,回调到同一子例程的那一行的TotalTime计数器只记录最外层调用的时间,在大多数情况下,这应该是运行递归循环的实际时间。之前的IRIS版本积累了相同代码多次迭代的时间,报告时间可能看起来太大了。
Line
- 监视一个例程行执行的次数(Metric#: 34 - RtnLine
)。Global metr
- 监控几个全局指标(Metric# 1-26,34-36,51,52
)。All metrics
- 监视所有可用指标。Customize metrics
— 允许创建要监视的指标的自定义列表。可以选择%Monitor
支持的任何标准性能指标。系统包类。当被提示输入度量项目编号时,输入一个问号(?
)以查看可用度量的列表。例如:
Enter the number of your choice: <1> 5 Enter metrics item number (press 'Enter' to terminate, ? for list) Metric#: ? 1.) GloRef: global refs 2.) GloSet: global sets . . . 34.) RtnLine: lines of ObjectScript . . . 51.) Time: elapsed time on wall clock 52.) TotalTime: total time used (including sub-routines) Metric#:
这个例子没有显示完整的列表;最好在运行例程时检索当前列表。有关检索列表的方法,请参阅逐行监视器编程接口部分。
注意:对于所有收集,总是收集例程行数和时间(最小度量)。
- 选择要监视的进程——输入菜单中显示的选择的数字。所有进程的默认值是1。
Select Processes to monitor 1.) Monitor All Processes 2.) Monitor Current Process Only 3.) Enter list of PIDs Enter the number of your choice: <1>
^%SYS.MONLBL
当前不提供列表或选择 PID
的方法;但是,可以使用 ^%SS
实用程序或管理门户的进程页面(系统操作 > 进程)来查找特定的进程 ID
号。
Enter the number of your choice: <1> 3 Enter PID (press 'Enter' to terminate) PID: 1640 PID: 2452 PID:
输入最后一个进程 ID
后按两次 Enter
结束列表。
一旦提供了必要的信息,^%SYS.MONLBL
就会为每个例程的每一行的计数器分配一个特殊的共享内存部分,并通知选定的进程监视已激活。
注意:由于共享计数器可能会被多个进程同时更新和/或正在运行的进程可能不会在同一时刻开始计数,因此计数器的精度可能会略有下降,从而导致计数低于预期。
Monitor started. Press RETURN to continue ...
启动逐行监视器后,例程会显示一个更广泛的菜单。逐行监控选项部分描述了此扩展菜单上的每个选项。