From 4ce3759902de9ec7d33df847a16dff46c54f00e6 Mon Sep 17 00:00:00 2001 From: HummyPkg Date: Thu, 31 Aug 2017 21:04:49 +0100 Subject: [PATCH] Optimise pretty_size function using log() --- webif/lib/pretty_size | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/webif/lib/pretty_size b/webif/lib/pretty_size index ec353de8..d9b7eb65 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 \