Hello,
I am trying to look for a way to find the size of a table (in bytes). Does anyone know how I could do this?
Thanks
Hello,
I am trying to look for a way to find the size of a table (in bytes). Does anyone know how I could do this?
Thanks
function tableSizeInBytes(tbl)
local totalSize = 0
local function sizeOf(obj)
local dataType = type(obj)
if dataType == "number" then
return 8
elseif dataType == "string" then
return #obj
elseif dataType == "boolean" then
return 1
elseif dataType == "table" then
return tableSizeInBytes(obj)
else
return 0
end
end
for key, value in pairs(tbl) do
totalSize = totalSize + sizeOf(key) + sizeOf(value)
end
return totalSize
end
local myTable = {x = 10, y = 20, z = "Hello, Roblox!"}
local size = tableSizeInBytes(myTable)
print("Table size in bytes:", size)
This is only going to work for PODs (after including things like vector
, and even then this doesn’t include something like a table’s constant memory cost). Even then, this is only going to be an estimate–you’re not including the base cost of a Lua data type, and a string for example is definitely going to be more than just its length.
There’s no way I can think of to get the size in bytes of something like an Instance, it’s all too complicated unfortunately.
return #game.HttpService:JSONEncode(data) * 8
Multiplied by 8 because, characters are made of 8 bytes.
Wouldn’t this be 1? One byte? 1 or 0? Confused.
yes you are right it should be one byte .