lua 代码效率测试 - pxqwxl/myLearnPoject GitHub Wiki
在写代码过程中经常会遇到for循环 下面是对for循环的一些效率测试 先执行10亿次空循环
local time1 = os.clock()
local a = 0
print(time1,"time1")
for i = 1, 100000000 do
end
print(os.clock()- time1,"time2")
用时大概只有0.3秒 当你在循环中执行 简单的变量赋值操作时或者判断时
for i = 1, 100000000 do a = 0 end
所用时间还是0.3秒这就说明赋值和判断几乎是不损耗什么时间的 但是 当你对a做累加时
for i = 1, 100000000 do a = a+1 end
当你用以下四种方式在扩大一百倍循环
local index = 0
for i = 1, 10000000000 do
index = index + 1
end
print(os.clock()- time1,"time1",index)
这时用时是 12.106当你
local time2 = os.clock()
local index2 = 0
for i = 1, 100000000 do
for j = 1, 10 do
for k = 1, 10 do
index2 = index2 + 1
end
end
end
print(os.clock()- time2,"time2",index2)
这时用时是 10.78当你
local time3 = os.clock()
local index3 = 0
for i = 1, 100000000 do
for j = 1, 100 do
index3 = index3 + 1
end
end
print(os.clock()- time3,"time3",index3)
这样加入一百次循环时 用时 9.147秒
local time4 = os.clock()
local index4 = 0
for i = 1, 100000000 do
for j = 1, 60 do
index4 = index4 + 1
end
for j = 1, 40 do
index4 = index4 + 1
end
end
print(os.clock()- time4,"time4",index4)
这样用时 9.411秒
所以我的理解循环层数两层为最佳 能分一次循环尽量不要做两次循环 还有循环体内执行的代码操作一定要简化