Lua中数字、bool或nils的垃圾收集,是否遗漏了内存泄漏的蛛丝马迹?
- 内容介绍
- 文章标签
- 相关推荐
本文共计240个文字,预计阅读时间需要1分钟。
这篇文章指出,除了数字、bool和nil之外的所有类型都是垃圾回收的对象。字段gc用于其他值(如字符串、表格、函数、重用户数据和线程),这些是受垃圾回收影响的。这是否正确?
This article意味着除了数字,bool和nil之外的所有类型都是垃圾收集.The field gc is used for the other values (strings, tables, functions, heavy userdata, and threads), which are those subject to garbage collection.
这是否意味着在某些情况下过度使用这些非gc类型可能会导致内存泄漏?
在Lua中,实际上有两种类型:总是按值传递的值和按引用传递的值(按照 chapter 2.1 in the Lua Manual).你引用的那些都是“按值传递”类型,因此它们直接存储在变量中.
如果删除变量,该值将立即消失.
因此,它不会开始泄漏内存,当然,除非您继续生成包含新值的新变量.但在那种情况下,这是你自己的错;).
本文共计240个文字,预计阅读时间需要1分钟。
这篇文章指出,除了数字、bool和nil之外的所有类型都是垃圾回收的对象。字段gc用于其他值(如字符串、表格、函数、重用户数据和线程),这些是受垃圾回收影响的。这是否正确?
This article意味着除了数字,bool和nil之外的所有类型都是垃圾收集.The field gc is used for the other values (strings, tables, functions, heavy userdata, and threads), which are those subject to garbage collection.
这是否意味着在某些情况下过度使用这些非gc类型可能会导致内存泄漏?
在Lua中,实际上有两种类型:总是按值传递的值和按引用传递的值(按照 chapter 2.1 in the Lua Manual).你引用的那些都是“按值传递”类型,因此它们直接存储在变量中.
如果删除变量,该值将立即消失.
因此,它不会开始泄漏内存,当然,除非您继续生成包含新值的新变量.但在那种情况下,这是你自己的错;).

