请问那种效率高
lua吧
全部回复
仅看楼主
level 1
uboxs 楼主
table.insert(t, "value");

t[#t+1] = "value";
那种方式效率高呢
2015年11月23日 14点11分 1
level 11
lua讲这点效率应该没什么意义……反正我用前面那种就是了[阴险]
   ——永夜抄超亲民!
2015年11月23日 23点11分 2
官方推荐用第二种方式,但没有说原因,曾经面试被问到那个效率高,说真的,我也认为效率差不多。这类面试题很让人蛋疼
2015年11月24日 03点11分
回复 uboxs :也许是因为前者要分析参数个数以及一些其他操作的原因吧
2015年11月24日 03点11分
@uboxs 第二种写起来太恶心了 第一种主要是查了两次表 第一次是全局表第二次是table 优化也简单 local tinsert = table.insert 就可以了 弄成upvalue[开心]
2015年11月28日 12点11分
level 1
[滑稽]第2种,第2种的代码可以被JIT,所以...
2015年12月03日 00点12分 3
level 8
如果不是JIT,那么第一种的效率是第二种效率的一半。
如果是JIT,那这两种效率几乎没什么差别,因为最终都会被JIT优化成差不多的机器码。
第一种与第二种的效率差别在于第一种做了一些额外的东西,比如每次都得先获得t的值再进行设置,而第二种在编译的时候就已经将t的值保存好了。
两都最终都是通过luaV_settable来设值的,你可以认为第一种在调用luaV_settable前还调用了若干函数,而第二种相当于直接使用luaV_settable,效率差别就在此。
2015年12月03日 02点12分 4
高手啊
2015年12月11日 01点12分
level 11
很开心的被百度不合法了[滑稽]什么都说不了了,只能发滑稽[滑稽][滑稽][滑稽]
2015年12月11日 20点12分 5
level 2
插入一个表呢
2015年12月15日 11点12分 6
1