gluon-status-page: avoid complex math
This code is usually running on an embedded CPU without FPU. In addtition to its inefficience, the algorithm is also much harder to understand. Replace the logarithm formula with a simple loop.
This commit is contained in:
parent
dcb8738a5a
commit
f2e0f7e3a8
@ -66,12 +66,17 @@
|
|||||||
|
|
||||||
local function formatBits(bits)
|
local function formatBits(bits)
|
||||||
local units = {[0]='', 'k', 'M', 'G'}
|
local units = {[0]='', 'k', 'M', 'G'}
|
||||||
|
local unit = 0
|
||||||
|
|
||||||
local pow = math.floor(math.log(math.max(math.abs(bits), 1)) / math.log(1000))
|
for i = 1, #units do
|
||||||
local known_pow = math.min(pow, #units)
|
if math.abs(bits) < 1000 then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
unit = i
|
||||||
|
bits = bits / 1000
|
||||||
|
end
|
||||||
|
|
||||||
local significand = bits/(1000^known_pow)
|
return string.format('%g %sbit', bits, units[unit])
|
||||||
return string.format('%g %sbit', significand, units[known_pow])
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function statistics(key, format)
|
local function statistics(key, format)
|
||||||
|
Loading…
Reference in New Issue
Block a user