Lua循环优化 · 花生肉泥

527 词

关于大量字符串连接 (速度提升100倍)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

a = os.clock()
local s = ''
for i=1,100000 do
s = s .. 'a'
end
b = os.clock()
print(b-a) -- 1.708秒

a = os.clock()
local s = ''
local t = {}
for i=1,100000 do
t[#t+1] = 'a'
end
s = table.concat(t,'')
b = os.clock()
print(b-a) -- 0.011秒

关于创建大量小size的表(大概速度提升1倍)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 创建大量小size表时,应该先填充好表的大小
a = os.clock()
for i=1,2000000 do
local a = {}
a[1] = 1;a[2] = 2;a[3] = 3
end
b = os.clock()
print(b-a) -- 1.361秒

a = os.clock()
for i=1,2000000 do
local a = {0,0,0}
a[1] = 1;a[2] = 2;a[3] = 3
end
b = os.clock()
print(b-a) -- 0.623秒