手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

lua如何回收内存

时间:2024-10-21 13:44:01

1、Lua内存是自动收集的,这点跟Java类似,不被任何对象或全局变量引用的数据,将被首先标记为回收,不需要开发者做任何事情.但是,正如Java也会有内存泄露一样。

lua如何回收内存

2、Lua也会有,只不过,跟C++的不同,它是由于代码执行所装载的资源,并没有被彻底销毁而导致,其中,最臭名昭著的就是不小心把局部变量声明成了全局变量(忘了加local修饰符)。

lua如何回收内存

3、类似这样造成的内存泄露,跟任何其他语言的内存泄露一样,容易产生,却难以察觉,给开发的应用带来潜在的很大隐患.

lua如何回收内存

4、那么,有没有一些有效的解决办法,来解决这个这个隐患呢,答案就是collectgarbage. collectgarbage就是开放给Lua开发人员,用于监听Lua的内存使用情况(collectgarbage("count")),同时,它还提供了collectgarbage("collect"),允许在适当的时候进行显式的回收。

lua如何回收内存
lua如何回收内存

5、现在,通过测试代码来看看,如何玩转collectgarbage。首先,为了有明显的对比,先来看没有产生泄露的情况,运行以下的test1(代码如下):

lua如何回收内存

6、运行结果如下:这里看到,被local声明的colen加了5000数组, test1调用后,内存增加了大概300K(25906K-25620K).

lua如何回收内存
© 手抄报圈