LUA 打印的性能开销
来源:互联网 发布:雅诗兰黛眼霜 知乎 编辑:程序博客网 时间:2024/05/30 23:34
local function fun1() local t = {1,2,3,4,5,6,7,8,9,0} for i = 1, 1000000 do print(table.concat(t)) end;end;local function fun2() local t = {"1","2","3","4","5","6","7","8","9","0"} for i = 1, 1000000 do print(table.concat(t)) end;end;local function fun3() local t = {0,1,2,3,4,5,6,7,8,9} for i = 1, 1000000 do print(t[1] * 1000000000 + t[2] * 100000000 + t[3] * 10000000 + t[4] * 1000000 + t[5] * 100000 + t[6] * 10000 + t[7] * 1000 + t[8] * 100 + t[9] * 10 + t[10]) endend;local function fun4() local t = {1,2,3,4,5,6,7,8,9,0} for i = 1, 1000000 do print( string.format("%d%d%d%d%d%d%d%d%d%d", t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10]) ) endendlocal function fun5() local t = {1,2,3,4,5,6,7,8,9,0} for i = 1, 1000000 do print(t[1] .. t[2] .. t[3] .. t[4] .. t[5] .. t[6] .. t[7] .. t[8] .. t[9] .. t[10]); end;endlocal function fun6() local t = {1,2,3,4,5,6,7,8,9,0} for i = 1, 1000000 do for j = 1, 10 do io.write(t[j]) end; io.write("\n"); end;end;local function fun7() local t = {1,2,3,4,5,6,7,8,9,0} local data = {} for i = 1, 1000000 do table.insert(data, string.format("%d%d%d%d%d%d%d%d%d%d", t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10]) ) end; print(table.concat(data, "\n"));end;local function fun8() local t = {1,2,3,4,5,6,7,8,9,0} local data = {} for i = 1, 1000000 do table.insert(data, table.concat(t)) end; print(table.concat(data, "\n"));end;-- 运行结果local o = os.time();-- fun1(); -- 5.6s-- fun2(); -- 0.7s-- fun3(): -- 1.2s-- fun4(); -- 1.8s-- fun5(); -- 5.5s-- fun6(); -- 6.6s-- fun7(); -- 1.5s-- fun8(); -- 5.2sprint("时间开销" .. (os.time() - o) .. "秒");
得出结论. 数据量不大的时候 table.concat 其实 和 ".." 性能差不多.
大部分开销会损耗在 tostring 上, 如果不能事先进行转换, 使用 string.format 会好的多
阅读全文
0 0
- LUA 打印的性能开销
- Lua的CPU开销性能优化
- KVM的性能开销
- 降低 lua gc 的开销
- 多线程的优劣/性能/系统开销
- 多线程的优劣/性能/系统开销
- 【unity】GameObject.Find 的性能开销分析
- 【cocos2dx+Lua】如何降低游戏的内存开销
- C++性能开销初探
- lua table 之开销巨大
- float与double的区别 内存性能开销不同
- javascript性能提升——减少遍历集合的开销
- MySQL的SSL加密连接与性能开销
- MySQL的SSL加密连接与性能开销
- MySQL的SSL加密连接与性能开销
- MySQL的SSL加密连接与性能开销
- 深入理解变量及方法调用的性能开销
- boost bind性能开销分析
- 在写<a>链接的href属性时 = 号 后面不能用空格,否则controller层接收不到参数值
- Jenkins+Jmeter+Ant自动化集成环境
- MZX大佬授课のDAY2
- 非法参数异常- DrawerLayout 必须与 MeasureSpec.EXACTLY 测量
- 培训:3天带你快速上手Kubernetes
- LUA 打印的性能开销
- zookeeper结合dubbo实现分布式接口调用
- java语言程序设计 第十二章 (12.23、12.24、12.25、12.26)
- java 小程序 商城 源码
- XML关键知识点
- iOS 11开发教程(九)iOS11数据线连接真机测试
- javabean
- 3D数学 学习笔记(5) 三角网格
- APP性能优化之过度绘制【项目实践】