如果是单纯得循环 和 里面进行了数字相加 对比:
代码如下,如果执行uuu + 得过程
local tb = {}
for i=1,300 do
tb[i] = i
end
local uuu = 0
local s = os.clock()
for i=1,50000 do
for k,v in pairs(tb) do
uuu = uuu + 1
end
end
local e = os.clock()
print("used time"..e-s.." seconds",uuu)
s = os.clock()
for i=1,50000 do
for k,v in ipairs(tb) do
uuu = uuu + 1
end
end
e = os.clock()
print("used time"..e-s.." seconds",uuu)
输出为:
used time0.51 seconds 15000000
used time0.37 seconds 30000000
如果给uuu = uuu + 1 注释掉,那么输出结果为:
used time0.5 seconds 0
used time0.36 seconds 0
可见不会对数据产生影响。
如果是连续的数组,那么使用 ipairs 。速度会有部分提升,可以减少程序再循环中的时间,也更为靠经C语言的数组功能。