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

With a Progress Openedge ABL (ChUI) program what is the most efficient method to determine run time?

任何看到这个的人,

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

在此之后不久,我收到了一种将大量详细信息输出到自定义日志文件的方法。这包括 STRING(NOW)。这有助于缩小范围并使 accessing/recording 时间戳更易于管理。不过我很好奇有没有原生的"method"找每个代码块的运行时间不那么费劲?

spring 要考虑的两个主要选项是 LOG-MANAGER 和 PROFILER。

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

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

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

或者您可以将它们 on/off 并在您的代码中使用句柄 LOG-MANAGER 或 PROFILER 以编程方式操作属性

这两种工具都有很多 kbase 条目,并且是深入细节的 PUG 讨论的常见主题。