Charakterbewegungen hinzugefügt, Deko hinzugefügt, Kochrezepte angepasst
This commit is contained in:
parent
95945c0306
commit
a0c893ca0b
1124 changed files with 64294 additions and 763 deletions
45
mods/futil/util/memory.lua
Normal file
45
mods/futil/util/memory.lua
Normal file
|
@ -0,0 +1,45 @@
|
|||
-- i have no idea how accurate this is, i use documentation from the below link for a few things
|
||||
-- https://wowwiki-archive.fandom.com/wiki/Lua_object_memory_sizes
|
||||
|
||||
local function estimate_memory_usage(thing, seen)
|
||||
local typ = type(thing)
|
||||
if typ == "nil" then
|
||||
return 0
|
||||
end
|
||||
|
||||
seen = seen or {}
|
||||
if seen[thing] then
|
||||
return 0
|
||||
end
|
||||
seen[thing] = true
|
||||
|
||||
if typ == "boolean" then
|
||||
return 4
|
||||
elseif typ == "number" then
|
||||
return 8 -- this is probably larger?
|
||||
elseif typ == "string" then
|
||||
return 25 + typ:len()
|
||||
elseif typ == "function" then
|
||||
-- TODO: we can calculate the usage of upvalues, but that's complicated
|
||||
return 40
|
||||
elseif typ == "userdata" then
|
||||
return 0 -- this is probably larger
|
||||
elseif typ == "thread" then
|
||||
return 1224 -- this is probably larger
|
||||
elseif typ == "table" then
|
||||
local size = 64
|
||||
for k, v in pairs(thing) do
|
||||
if type(k) == "number" then
|
||||
size = size + 16 + estimate_memory_usage(v, seen)
|
||||
else
|
||||
size = size + 40 + estimate_memory_usage(k, seen) + estimate_memory_usage(v, seen)
|
||||
end
|
||||
end
|
||||
return size
|
||||
else
|
||||
futil.log("warning", "estimate_memory_usage: unknown type %s", typ)
|
||||
return 0 -- ????
|
||||
end
|
||||
end
|
||||
|
||||
futil.estimate_memory_usage = estimate_memory_usage
|
Loading…
Add table
Add a link
Reference in a new issue