可能是Lua的bug
table.foreach({1,"two",3}, function(k,v) print(k,v) return k<2 and nil end)摘自wowwiki的句子
说下我的关键问题
foreach(table, [color=red]function(k,v) ; end[/color]) -- 语句 X
大家注意红色的部分
估计这个代码在运行时后生成一个无名函数 某f
然后foreach调用 某f
但是 语句 X 运行一次 就会生成一个 某f 并且某f不被垃圾收集器吃掉
严重吃内存
大家用for index,value in pairs(table) do 代替把
希望某人能联系下lua…… 垃圾回收又不是即时的。。。
否则CPU都给垃圾回收进程占去了 这个不算是Bug吧,本来foreach就是老式的用法,不建议使用的。 手册上这样说:
Functions table.foreach and table.foreachi are deprecated. You can use a for loop with pairs or ipairs instead.
页:
[1]