如何测量TCL脚本的cpu时间

How to measure cpu time of TCL script

我有很长的 TCL 脚本。我想测量进程在 TCL

中花费的准确 cpu 时间

我尝试了 TCL 中的时间命令,但我不确定它是否是测量完整 TCL 脚本cpu所用时间的正确方法

Tcl 本身不提供此信息。您想使用 TclX 包的 times 命令。

package require Tclx

set pre [times]
# do CPU intensive operation here; for example calculating the length of a number with many digits...
string length [expr {13**12345}]
set post [times]

# the current process's non-OS CPU time is the first element; it's in milliseconds
set cpuSecondsTaken [expr {([lindex $post 0] - [lindex $pre 0]) / 1000.0}]
# The other elements are: system-cpu-time, subprocess-user-cpu-time, subprocess-system-time

当然,您依赖 OS 正确测量此信息。它不能移植到非 POSIX 系统(例如,Windows),尽管 TWAPI 包中可能有一些逻辑上相似的东西。