oLuaLua 优化工具
oLua 是一个聊胜于无的Lua优化工具。
优化点
- 优化Lua的table访问
- 优化Lua的table构造
优化Lua的table访问
例如如下代码:
a.b = {} if a.c then a.b.data1 = "1" a.b.data2 = "2" a.b.data3 = "3" end
a.b是一个table,每次访问a.b都会触发一次table的访问,这样会影响性能,所以可以优化为:
a.b = {} local a_b = a.b if a.c then a_b.data1 = "1" a_b.data2 = "2" a_b.data3 = "3" end
注意:这里做了一个假设推断,当对一个a.b赋值构造的table后,就不会再更改a.b为其他table或者其他类型。只针对符合这种假设的推断的代码才能优化。
优化Lua的table构造
例如如下代码:
local a = { a = 1, 2 } a.b = 1 a["c"] = 2 a[3] = 3 a.d = { e = 4 } a.d.f = 5
每次往a中添加元素可能会触发table的扩容,所以可以优化为:
local a = {['a']=1, 2, ['b']=1, ['c']=2, [3]=3, ['d']={['e']=4,['f']=5}}
使用
编译:
go mod tidy go build
运行,优化单个文件的table访问:
./oLua -input input/table_access.lua -output output/table_access.lua -opt_table_access
运行,优化单个文件的table构造:
./oLua -input input/table_construct.lua -output output/table_construct.lua -opt_table_construct
也可以优化目录下的所有文件,原地替换:
./oLua -inputpath input_dir -opt_table_access -opt_table_construct
效果
使用Lua执行input、output目录下的lua文件,看运行所需的时间。
优化前 | 优化后 | |
---|---|---|
table访问 | 19.07 | 11.0 |
table构造 | 3.3 | 1.9 |
评论
namebenchDNS优化工具
namebench可以帮你寻找你的电脑能访问的最快的DNS服务器,通过测试并输出详细的图形报表告诉你,为什么所选择的DNS服务器是最快的。为了获取最贴近实际情况的数字,namebench会自动调用用户
namebenchDNS优化工具
0
Bash++bash 优化工具
Bash++是一个将bash提升到一个新水平的框架,为bash引入了新功能。它的设计是为了让人们能够建立更复杂的应用程序,创造更好的产品。请注意,这个项目是为有bash经验的人准备的(不多,只是简单的
Bash++bash 优化工具
0
DolotoJS优化工具
微软发布了一个用来优化JS加载性能的客户端工具:Doloto 。官方页面上说它对于大型复杂的AJAX应用尤其的有用,因为这些应用包含了大量的JavaScript代码。简单的说,它的工作原理就是把页面中
DolotoJS优化工具
0
or-toolsGoogle 优化工具
or-tools是Google的优化搜索工具。Google优化工具包括:约束编程解决方案为线性规划和混合整数规划解决方案提供简单统一的接口,包括CBC,CLP,GLOP,GLPK,Gurobi,SCI
or-toolsGoogle 优化工具
0