下面就是小编带给大家的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
个人意见,仅供参考。
上一篇:王者荣耀皮肤怎么回收
下一篇:怎样做一名合格的人民教师