Lua_垃圾回收_013
来源:互联网 发布:企业邮箱哪个好 知乎 编辑:程序博客网 时间:2024/06/06 03:42
Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。
Lua 运行了一个垃圾收集器来收集所有死对象 (即在 Lua 中不可能再访问到的对象)来完成自动内存管理的工作。 Lua 中所有用到的内存,如:字符串、表、用户数据、函数、线程、 内部结构等,都服从自动管理。
Lua 实现了一个增量标记-扫描收集器。 它使用这两个数字来控制垃圾收集循环: 垃圾收集器间歇率和垃圾收集器步进倍率。 这两个数字都使用百分数为单位 (例如:值 100 在内部表示 1 )。
垃圾收集器间歇率控制着收集器需要在开启新的循环前要等待多久。 增大这个值会减少收集器的积极性。 当这个值比 100 小的时候,收集器在开启新的循环前不会有等待。 设置这个值为 200 就会让收集器等到总内存使用量达到 之前的两倍时才开始新的循环。
垃圾收集器步进倍率控制着收集器运作速度相对于内存分配速度的倍率。 增大这个值不仅会让收集器更加积极,还会增加每个增量步骤的长度。 不要把这个值设得小于 100 , 那样的话收集器就工作的太慢了以至于永远都干不完一个循环。 默认值是 200 ,这表示收集器以内存分配的”两倍”速工作。
如果你把步进倍率设为一个非常大的数字 (比你的程序可能用到的字节数还大 10% ), 收集器的行为就像一个 stop-the-world 收集器。 接着你若把间歇率设为 200 , 收集器的行为就和过去的 Lua 版本一样了: 每次 Lua 使用的内存翻倍时,就做一次完整的收集。
阅读全文
0 0
- Lua_垃圾回收_013
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- 垃圾回收
- uniq wc tr 的用法小记
- git使用笔记
- 直播APP测试问题---服务器压力
- 【笔记】KMP算法相关计算题(选择题)
- linux下直接运行.py文件
- Lua_垃圾回收_013
- 最全各种浏览器网页星号点号密码查看最简方法(技术小白也能看懂使用)
- 抓包工具Fiddler对iPhone进行抓包
- 下拉刷新的库
- webapp屏幕适配
- 【数据结构】链表的原理及与其相关的常见面试题总结
- 短实训-数据库基础(三)
- 认识UART接口
- 今日头条一个身份证可以注册几个头条号