Lua中内存管理和释放的理解
- 内存
- 2024-05-31 18:25:44
- 2656
一、lua获取table占用内存的大小没有现成的接口来计算Luatable的内存大小。从源码来看,表类型定义如下
所以,表占用的内存大小为,
因为无法直接获取lua表,所以需要修改源码
当然,需要考虑到表的key/value仍然可能是表,所以
在lua中使用
注意:
二、在java中调用lua执很多次之后,内存使用率持续上升,无法释放依赖于LuaStateluaState=State();
和();的实现。
Lua中有调用内存来分配用户对象,但是如果没有注册gc,luastate的close并不会释放内存。