oLua Lua 优化工具开源项目

我要开发同款
匿名用户2023年04月13日
109阅读
开发技术GO语言
所属分类Google Go、脚本编程语言、程序开发
授权协议MIT

作品详情

oLua是一个聊胜于无的Lua优化工具。

优化点优化Lua的table访问优化Lua的table构造优化Lua的table访问

例如如下代码:

a.b={}ifa.cthena.b.data1="1"a.b.data2="2"a.b.data3="3"end

a.b是一个table,每次访问a.b都会触发一次table的访问,这样会影响性能,所以可以优化为:

a.b={}locala_b=a.bifa.cthena_b.data1="1"a_b.data2="2"a_b.data3="3"end

注意:这里做了一个假设推断,当对一个a.b赋值构造的table后,就不会再更改a.b为其他table或者其他类型。只针对符合这种假设的推断的代码才能优化。

优化Lua的table构造

例如如下代码:

locala={a=1,2}a.b=1a["c"]=2a[3]=3a.d={e=4}a.d.f=5

每次往a中添加元素可能会触发table的扩容,所以可以优化为:

locala={['a']=1,2,['b']=1,['c']=2,[3]=3,['d']={['e']=4,['f']=5}}使用

编译:

gomodtidygobuild

运行,优化单个文件的table访问:

./oLua-inputinput/table_access.lua-outputoutput/table_access.lua-opt_table_access

运行,优化单个文件的table构造:

./oLua-inputinput/table_construct.lua-outputoutput/table_construct.lua-opt_table_construct

也可以优化目录下的所有文件,原地替换:

./oLua-inputpathinput_dir-opt_table_access-opt_table_construct效果

使用Lua执行input、output目录下的lua文件,看运行所需的时间。

 优化前优化后table访问19.0711.0table构造3.31.9

 

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论