关注
楼主你好,对于Lua配置表优化笔记我有个问题不大理解,文中给的优化方案在访问时元方法里面实际上还是进行了一次key-value的哈希吧,好像还是牺牲了时间来换空间,并不是文中说的优化了访问时间,我测了下在访问时间上应该是比优化前更耗时的,以下是我测试的代码和结果
local loopTimes = 100000
local _key2index = { id = 1, name = 2, number = 3 }
local _o = {
__index = function(data, key)
local index = _key2index[key]
if index == nil then
return nil
end
return data[index]
end,
__newindex = function(data, key, value)
error("Can't modify a readonly table!")
end
}
local _M = {
[1] = setmetatable({1,"test1",100}, _o),
[2] = setmetatable({2,"test2",200}, _o)
}
local _X = {
[1] = { id = 1,name = "test1",number = 100 },
[2] = { id = 2,name = "test2",number = 200 }
}
local a
print(os.clock())
for i = 1,loopTimes do
a = _M[1].id
end
print(os.clock())
for i = 1,loopTimes do
a = _M[1].id
end
print(os.clock())
for i = 1,loopTimes do
a = _X[1].id
end
print(os.clock())
查看原帖
点赞 3
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
302680次浏览 2685人参与
# 如果不工作真的会快乐吗 #
59443次浏览 519人参与
# 阿里云管培生offer #
17756次浏览 296人参与
# 地方国企笔面经互助 #
3870次浏览 11人参与
# 美团求职进展汇总 #
1327979次浏览 12451人参与
# 选完offer后,你后悔学本专业吗 #
20109次浏览 144人参与
# 百度开奖 #
163604次浏览 981人参与
# 正在实习的你,几点下班 #
52096次浏览 391人参与
# 国央企薪资爆料 #
8583次浏览 69人参与
# 如何一边实习一边秋招 #
992397次浏览 12640人参与
# 提前批简历挂麻了怎么办 #
146542次浏览 1948人参与
# 学历or实习经历,哪个更重要 #
51236次浏览 402人参与
# 海康威视求职进展汇总 #
399000次浏览 3406人参与
# 米哈游求职进展汇总 #
176048次浏览 1458人参与
# 求职遇到的搞笑事件 #
70887次浏览 577人参与
# 投递实习岗位前的准备 #
1179619次浏览 18397人参与
# 面试体验感最好的是哪家? #
85140次浏览 846人参与
# 实习生应该准时下班吗 #
167478次浏览 1159人参与
# 得物求职进展汇总 #
66339次浏览 682人参与
# 网申一定要掌握的小技巧 #
5343次浏览 53人参与
# 招聘要求与实际实习内容不符怎么办 #
10308次浏览 273人参与
# 0offer是寒冬太冷还是我太菜 #
898768次浏览 8015人参与