Я занимаюсь Love2D с помощью Lua и только что реализовал StateMachine для обработки переходов между множеством состояний, например. IntroState, MenuState, PlayState и т. Д.Как получить «sizeof» таблицу в Lua?
В предыдущих программах я обычно освобождаю объекты и/или состояния, которые являются только «разовой сделкой», которые будут представлены игроку один раз в течение всего срока действия приложения , В C++ я использую оператор sizeof
, который возвращает размер в байтах переданного объекта, чтобы получить некоторую обратную связь о том, сколько памяти я выпускаю в определенный момент.
Есть ключевое слово или уловка в Lua для достижения этой цели?
Существует [getize] (https://github.com/siffiejoe/lua-getsize), внешний модуль, который может это сделать. Это только для PUC-Rio Lua (без LuaJIT), поскольку он обращается к внутренним структурам данных. Тем не менее, Lua будет хранить память об объектах до тех пор, пока они не будут недоступны * и * сборщик мусора восстановит их, и это может быть намного позже, поэтому такая обратная связь не имеет особого смысла в Lua. – siffiejoe