Skip to content

Commit 1b69a0d

Browse files
committed
correct output of total resp. average values considering net execution time (overhead considered)
1 parent 47dd816 commit 1b69a0d

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

win/test-performance.tcl

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,48 +46,62 @@ proc _test_get_commands {lst} {
4646
proc _test_out_total {} {
4747
upvar _ _
4848

49-
if {![llength $_(ittm)]} {
49+
set tcnt [llength $_(itm)]
50+
if {!$tcnt} {
5051
puts ""
5152
return
5253
}
5354

5455
set mintm 0x7fffffff
5556
set maxtm 0
57+
set nett 0
58+
set wtm 0
59+
set wcnt 0
5660
set i 0
57-
foreach tm $_(ittm) {
61+
foreach tm $_(itm) {
62+
if {[llength $tm] > 6} {
63+
set nett [expr {$nett + [lindex $tm 6]}]
64+
}
65+
set wtm [expr {$wtm + [lindex $tm 0]}]
66+
set wcnt [expr {$wcnt + [lindex $tm 2]}]
67+
set tm [lindex $tm 0]
5868
if {$tm > $maxtm} {set maxtm $tm; set maxi $i}
5969
if {$tm < $mintm} {set mintm $tm; set mini $i}
6070
incr i
6171
}
6272

6373
puts [string repeat ** 40]
64-
puts [format "Total %d cases in %.2f sec.:" [llength $_(itcnt)] [expr {[llength $_(itcnt)] * $_(reptime) / 1000.0}]]
65-
lset _(m) 0 [format %.6f [expr [join $_(ittm) +]]]
66-
lset _(m) 2 [expr [join $_(itcnt) +]]
67-
lset _(m) 4 [format %.3f [expr {[lindex $_(m) 2] / ([llength $_(itcnt)] * $_(reptime) / 1000.0)}]]
74+
set s [format "%d cases in %.2f sec." $tcnt [expr {$tcnt * $_(reptime) / 1000.0}]]
75+
if {$nett > 0} {
76+
append s [format " (%.2f nett-sec.)" [expr {$nett / 1000.0}]]
77+
}
78+
puts "Total $s:"
79+
lset _(m) 0 [format %.6f $wtm]
80+
lset _(m) 2 $wcnt
81+
lset _(m) 4 [format %.3f [expr {$wcnt / (($nett ? $nett : ($tcnt * $_(reptime))) / 1000.0)}]]
82+
if {[llength $_(m)] > 6} {
83+
lset _(m) 6 [format %.3f $nett]
84+
}
6885
puts $_(m)
6986
puts "Average:"
70-
lset _(m) 0 [format %.6f [expr {[lindex $_(m) 0] / [llength $_(itcnt)]}]]
71-
lset _(m) 2 [expr {[lindex $_(m) 2] / [llength $_(itcnt)]}]
72-
lset _(m) 4 [expr {[lindex $_(m) 2] * (1000 / $_(reptime))}]
87+
lset _(m) 0 [format %.6f [expr {[lindex $_(m) 0] / $tcnt}]]
88+
lset _(m) 2 [expr {[lindex $_(m) 2] / $tcnt}]
89+
if {[llength $_(m)] > 6} {
90+
lset _(m) 6 [format %.3f [expr {[lindex $_(m) 6] / $tcnt}]]
91+
lset _(m) 4 [format %.0f [expr {[lindex $_(m) 2] / [lindex $_(m) 6] * 1000}]]
92+
}
7393
puts $_(m)
7494
puts "Min:"
75-
lset _(m) 0 [lindex $_(ittm) $mini]
76-
lset _(m) 2 [lindex $_(itcnt) $mini]
77-
lset _(m) 2 [lindex $_(itrate) $mini]
78-
puts $_(m)
95+
puts [lindex $_(itm) $mini]
7996
puts "Max:"
80-
lset _(m) 0 [lindex $_(ittm) $maxi]
81-
lset _(m) 2 [lindex $_(itcnt) $maxi]
82-
lset _(m) 2 [lindex $_(itrate) $maxi]
83-
puts $_(m)
97+
puts [lindex $_(itm) $maxi]
8498
puts [string repeat ** 40]
8599
puts ""
86100
}
87101

88102
proc _test_run {reptime lst {outcmd {puts $_(r)}}} {
89103
upvar _ _
90-
array set _ [list ittm {} itcnt {} itrate {} reptime $reptime]
104+
array set _ [list itm {} reptime $reptime]
91105

92106
foreach _(c) [_test_get_commands $lst] {
93107
puts "% [regsub -all {\n[ \t]*} $_(c) {; }]"
@@ -99,9 +113,7 @@ proc _test_run {reptime lst {outcmd {puts $_(r)}}} {
99113
set _(r) [if 1 $_(c)]
100114
if {$outcmd ne {}} $outcmd
101115
puts [set _(m) [timerate $_(c) $reptime]]
102-
lappend _(ittm) [lindex $_(m) 0]
103-
lappend _(itcnt) [lindex $_(m) 2]
104-
lappend _(itrate) [lindex $_(m) 4]
116+
lappend _(itm) $_(m)
105117
puts ""
106118
}
107119
_test_out_total

0 commit comments

Comments
 (0)