遇到问题:
在运行lua脚本时,出现下面报错说内存不足:
>lua -e "io.stdout:setvbuf 'no'" "最大值最小值检查.lua"
lua: not enough memory
>Exit code: 1
原因是,lua解释器是32位的,它的内存大小只有2GB,当它内存不够时就会出现上述提示。lua语言虽然会自己回收释放掉的资源,但是,它的回收机制并不是实时回收的,而是,他会将脚本中无用了的变量进行标记,然后等到一个合适的机会进行回收。所以当循环次数特别多时,就有可能造成内存不足。
我们可以验证一下是否是这个原因:
我在代码循环中加入了 check.LogError(string.format("内存占用:%s", collectgarbage("count")))
【后面介绍】,运行显示: