多语言展示
当前在线:172今日阅读:23今日分享:25

lua如何回收内存

下面就是小编带给大家的lua如何回收内存方法操作,希望能够给你们带来一定的帮助,谢谢大家的观看。
方法/步骤
1

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

2

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

3

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

4

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

5

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

6

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

注意事项
1

以上就是小编带给大家的如何操作的关键所在,如果觉得本经验对你们有帮助,请给小编我进行一点小小的支持。大家也可以下面发表一下自己的看法。

2

个人意见,仅供参考。

推荐信息