首页 > 解决方案 > 使用 Progress Openedge ABL (ChUI) 程序确定运行时间的最有效方法是什么?

问题描述

对于任何看到这一点的人,

我正在尝试使用基于 Progress Openedge ABL 字符的应用程序来确定许多程序的运行时间。最初,我开始使用 etime 函数并将其作为消息注销。但是,这非常繁琐,因为您必须在每个相应的块中重置 etime。

此后不久,我被告知一种将许多详细信息输出到自定义日志文件的方法。这包括 STRING(NOW)。这有助于缩小范围并使访问/记录时间戳更易于管理。但是,我很好奇是否有一种本机“方法”来查找每个代码块的运行时间并不那么费力?

标签: openedgeprogress-4gl

解决方案


想到的两个主要选项是 LOG-MANAGER 和 PROFILER。

LOG-MANAGER 与您正在做的类似——它写入日志文件,然后您分析。您可能需要 4GL Trace 日志条目类型。

在我看来,PROFILER 更有用。从工具的角度来看,它得到了更好的支持。PROFILER 为您逐行提供微秒级精确计时。您可以将它与自 8.2 以来的任何 Progress 版本一起使用。有几个独立的分析工具可用,或者您可以使用 PDSOE 中的工具(如果有的话)。自己编写也不是那么难。

这两种工具都可以通过启动参数启用:LOG-MANAGER 使用 -clientlog、-logentrytypes 和 -logginglevel 启动参数。PROFILER 是 -profile(或 v8 中的 -zprofile)。

或者,您可以使用代码中的句柄 LOG-MANAGER 或 PROFILER 以编程方式打开/关闭它们并操作属性

这两种工具都有很多 kbase 条目,并且是 PUG 讨论的常见主题,这些讨论涉及血腥细节。


推荐阅读