diff --git a/webif/lib/pretty_size b/webif/lib/pretty_size index ec353de..d9b7eb6 100644 --- a/webif/lib/pretty_size +++ b/webif/lib/pretty_size @@ -3,9 +3,19 @@ if {![exists -proc pretty_size]} { proc pretty_size {size} { set units {bytes KiB MiB GiB TiB} - for {set i 0; set l [llength $units]; incr l -1} { - $size > 1023 && $i < $l} {incr i} { - set size $($size / 1024.0) +# for {set i 0; set l [llength $units]; incr l -1} { +# $size > 1023 && $i < $l} {incr i} { +# set size $($size / 1024.0) +# } + + # We need to know how many powers of 1024 there are in + # size. This calculates the answer effeciently. Testing + # shows that this version takes 2/3 the time of the above. + if {$size == 0} { + set i 0 + } else { + set i $(int(log($size) / log(1024))) + set size $($size / 1024.0 ** $i) } set size [string trimright \