测试lua在连续的地址空间遍历查找效率和hash查找效率,以及测试相同“长度”的hash表和数组所占空间对比。
local arr1 = {}
local map1 = {}
for i = 1, 1000 do
local num = math.random()
arr1[#arr1] = num;
map1[num] = 1;
end
local time = os.clock();
collectgarbage();
local total = collectgarbage("count") * 1024
for i = 1, 100 do
local num = math.random();
for k = 1, 1000 do
if num == arr1[i] then
break;
end
end
end
print(os.clock() - time);
---0.003
arr1 = nil;
collectgarbage();
print("arr1::::" .. (total - collectgarbage("count") * 1024))
---arr1::::64
time = os.clock();
for i = 1, 100 do
local num = math.random();
if map1[num] then
end
end
print(os.clock() - time);
---0
map1 = nil;
collectgarbage();
print("map1::::" .. (total - collectgarbage("count") * 1024))
---map1::::32864
测试lua不同基础数据所占空间
--先测试不同位数的数字所占空间
local byte = collectga