在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
lua的垃圾回收机制: collectgarbage([opt[,arg]]) 用来控制自动内存管理
(1)gc自动运行,也可以手动调用; (2)自动收集的目标是引用计数为0的对象; (3)dead objects:不能访问到的对象,没有引用指向它了,当然就是访问不到的了,也就等同于垃圾内存了。 1 fulluserdata VS lightuserdataclass A { 2 gcLua使用两个数字控制垃圾收集循环。一个数字表示Lua使用的动态内存的字节数,另一个是阀值。(见 2.9)。一个数字表示Lua使用的动态内存的字节数,另一个是阀值。当内存字节数到达阀值时,Lua就运行垃圾收集器,来释放死对象的空间。一旦字节计数器被调整,那么阀值就会被设为字节计数器新值的两倍。 你可以通过以下的函数得到这两个量的当前值: int lua_getgccount (lua_State *L); int lua_getgcthreshold (lua_State *L); 它们的返回值的单位都是千字节(K bytes)。你可以通过下面的函数改变阀值 void lua_setgcthreshold (lua_State *L, int newthreshold); 然后,新的阀值得单位也是千字节。当你调用这个函数,Lua设置阀新值并且和字节计数器作比较。如果新的阀值小于字节计数器,Lua将立刻运行垃圾收集器。特别是 |
请发表评论