如何测量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 包中可能有一些逻辑上相似的东西。
我有很长的 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 包中可能有一些逻辑上相似的东西。