Bootstrap

Lua开发技巧-小表预填充

1、未使用预填充技术的代码

start = os.clock()

for i = 1, 1000000 do
    local t = {}
    t[1] = 1; t[2] = 2; t[3] = 3;
end

finish = os.clock()

print(finish - start)

运行时间:0.52

2、使用预填充技术的代码

start = os.clock()

for i = 1, 1000000 do
    local t = {1, 2, 3}
    t[1] = 1; t[2] = 2; t[3] = 3;
end

finish = os.clock()
print(finish - start)

运行时间:0.26

3、原理

Lua的Table在实现过程中采用数组和哈希表共同存储Table的元素,随着Table中元素的增多,数组和哈希表的大小是不断调整的,创建表格的时候预填充表格的大小,避免数组和哈希表的调整,提高代码执行效率。