CONTAINER = { Ver = "0.3", --- integer lookup for the DateTime timeLUT = {[0]="00",[1]="01",[2]="02",[3]="03",[4]="04",[5]="05",[6]="06",[7]="07",[8]="08",[9]="09"}, strCACHE = { [100] = ""}, SubStrA = "Unknown", SubAPrst = "ASjdasda", } for i = 10,99,1 do CONTAINER.timeLUT[i] = tostring(i) end DataBlob = { vAng = { x = 1.0, y = 2.0, z = 3.0}, vPos = { x = 2131.0, y = 42.0, z = -433.0}, Composite = { VARIANT1 = { isFirst = true, isMiddle = false, isLast = true }, VARIANT2 = { isIgnored = true}, VARIANT3 = { isAccurate = false }, VARIANT4 = { bEnabled = false }, VARIANT5 = { isLocked = false, ImpactV = 1.8 }, VARIANT6 = { troCoWal = true }, VARIANT7 = { isBroCal = false } } } Global = { isLocked = function(x)return false end, GetTimeStamp = function(x)return math.random() + math.random(1, 99) end, GetLocalTimeStamp = function(x)return math.random() + math.random(1, 99) end, GetTotalPTime = function(x)return math.random() + math.random(1, 99) end, GetDataBlob = function(x)return DataBlob end, GetName = function(x)return "AThing" end } function CONTAINER.PopulateState() -- GC first local gcInit = collectgarbage("count") -- Cachig globals local floor, mod, tostring = math.floor, math.mod, tostring local G = Global local intCache = CONTAINER.timeLUT local strBuilder = CONTAINER.strCACHE -- Fetching & caching data local locDB, Name = G.GetDataBlob(), G.GetName() local ts = G.GetTimeStamp() local lag = math.random() + math.random(1, 2) -- Local helpers local function sBool(bool) return bool and "1" or "0" end local t = 0 function cAppend(cTbl, ...) for i=0, arg.n do cTbl[#cTbl+1] = arg[i] t = t +1 end end function cClear(cTbl) for _=0, #cTbl do cTbl[#cTbl] = nil end end -- Populating table cClear(strBuilder) if locDB ~= nil then locDB = G.GetDataBlob() local PC = locDB.Composite local tp = G.GetTotalPTime() local d, h, m, s = floor(tp/86400), floor(mod(tp, 86400)/3600), floor(mod(tp,3600)/60), floor(mod(tp,60)) cAppend(strBuilder, "[", Name, "]:\n", "Ang :", "(", tostring(locDB.vAng.x),",",tostring(locDB.vAng.y),",",tostring(locDB.vAng.z), ")\n", "Pos :", "(", tostring(locDB.vPos.x),",",tostring(locDB.vPos.y),",",tostring(locDB.vPos.z), ")\n", "isLocked: ", sBool(G.isLocked()), "\n") if (locDB.Composite["VARIANT1"] ~= nil) then cAppend(strBuilder, "isFirst / isLast: ", sBool(PC.VARIANT1.isFirst)," / ",sBool(PC.VARIANT1.isLast), "\n", "isMiddle: ", sBool(PC.VARIANT1.isMiddle), "\n") end if (locDB.Composite["VARIANT2"] ~= nil) then cAppend(strBuilder, "isIgnored: ", sBool(PC.VARIANT2.isIgnored), "\n") end if (locDB.Composite["VARIANT4"] ~= nil) then cAppend(strBuilder, "bEnabled: ", sBool(PC.VARIANT4.bEnabled), "\n") end if (locDB.Composite["VARIANT3"] ~= nil) then cAppend(strBuilder, "isAccurate: ", sBool(PC.VARIANT3.isAccurate), "\n") end if (locDB.Composite["VARIANT5"] ~= nil) then cAppend(strBuilder, "isLocked: ", sBool(PC.VARIANT5.isLocked), "\n", "ImpactV: ", tostring(PC.VARIANT5.ImpactV), "\n") end if (locDB.Composite["VARIANT6"]) then cAppend(strBuilder, "troCoWal: ", sBool(PC.VARIANT6.troCoWal), "\n") end if (locDB.Composite["VARIANT7"]) then cAppend(strBuilder, "isBroCal: ", sBool(PC.VARIANT7.isBroCal), "\n") end local gcLast = collectgarbage("count") cAppend(strBuilder, "Time taken: ",intCache[d],":",intCache[h],":",intCache[m],":",intCache[s], "\n", "TS: ", tostring(ts), "\n", "local TS: ", tostring(G.GetLocalTimeStamp()),"\n", "Lag: ", string.format("%.5f", lag) , " ms\n", "Heap: ", tostring(gcLast), "KB\n") cAppend(strBuilder, "Alloc: ", tostring(gcLast-gcInit),"KB"," (v", CONTAINER.Ver, ")","\n", "Extra: ", CONTAINER.SubStrA, "_", CONTAINER.SubAPrst, "\n") print("Allocated pre-concat: " .. tostring(gcLast-gcInit)) end collectgarbage("collect") table.concat(strBuilder) print("Allocated post-concat: " .. tostring(collectgarbage("count"))) print("Total table metabytes: " .. tostring(t*16)) end collectgarbage("collect") CONTAINER.PopulateState()