lua make memcheck script eat all available ram (incld audiobuf)

Change-Id: Ia202c9097324985a3a9a9c96be8422c38e79cb3e
This commit is contained in:
William Wilgus 2024-12-25 14:13:37 -05:00 committed by William Wilgus
parent 962e1b2e69
commit 0a88b818e9

View file

@ -16,6 +16,28 @@
KIND, either express or implied.
]]--
local a = {}
loops = 1 --global
local function alloc_tables(loops)
for i=1,loops do a[i] = {{}}; local b = {} end
return true
end
local ret
local status = true
rb.lcd_putsxy(0, 0, "memchk loops : ")
while (status and loops < 1000)
do
rb.lcd_putsxy(0, 20, loops)
rb.lcd_update()
alloc_tables(loops)
-- do call protected to catch OOM condition
status, ret = pcall(alloc_tables, loops * 1000)
loops = loops + 1
_G.loops = loops
end
local used, allocd, free = rb.mem_stats()
local lu = collectgarbage("count")
local fmt = function(t, v) return string.format("%s: %d Kb\n", t, v /1024) end
@ -23,10 +45,13 @@ local fmt = function(t, v) return string.format("%s: %d Kb\n", t, v /1024) end
-- this is how lua recommends to concat strings rather than ..
local s_t = {}
s_t[1] = "rockbox:\n"
s_t[2] = fmt("Used ", used)
s_t[3] = fmt("Allocd ", allocd)
s_t[4] = fmt("Free ", free)
s_t[5] = "\nlua:\n"
s_t[6] = fmt("Used", lu * 1024)
s_t[7] = "\n\nNote that the rockbox used count is a high watermark"
s_t[2] = "Loops : "
s_t[3] = loops - 1
s_t[4] = "\n"
s_t[5] = fmt("Used ", used)
s_t[6] = fmt("Allocd ", allocd)
s_t[7] = fmt("Free ", free)
s_t[8] = "\nlua:\n"
s_t[9] = fmt("Used", lu * 1024)
s_t[10] = "\n\nNote that the rockbox used count is a high watermark\n"
rb.splash_scroller(10 * rb.HZ, table.concat(s_t))