• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Lua性能优化技巧[六最后的提示]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原作者 Roberto Ierusalimschy

翻译 hillin

翻译版权所有©2011 hillinworks,转载需征得译者允许。


目录


一 前言

二 基本事实

三 关于表

四 关于字符串

五 削减、重用与回收

六 最后的提示


正如我们在前言里所说,优化是一个技巧性很强的工作,从程序是否需要优化开始,有若干个方面的内容需要考量。如果程序真的有性能问题,那么我们应该将精力集中于优化哪里和如何优化。

我们在这里讨论的技巧既不是唯一的,也不是最重要的方面。我们在这里专注于讨论专门针对Lua的优化方式,因为有很多其他的方式可以了解通用的程序优化技巧。

在本文结束之前,我还想介绍两种从更大的尺度上优化Lua程序性能的方式,但是它们都牵涉到Lua代码之外的修改。第一个是使用LuaJIT[1],一个Lua的即时编译器,由Mike Pall开发。他所作的工作非常卓越,而且LuaJIT可能是所有动态语言里最快的JIT了。使用它的代价是它只能在x86架构上运行,而且你需要一个非标准的Lua解释器(LuaJIT)来运行你的程序。所获得的好处是你可以在不修改代码的情况下让程序的运行速度提高到原先的5倍。第二个方式是将部分代码移到C中实现。这一条的重点在于为C代码选择合适的粒度。一方面,如果你把一些非常简单的函数移动到C里,Lua和C之间的通讯开销会抵消使用C编写函数带来的性能优势;另一方面,如果你把太大的函数移到C里,你又失去了Lua所提供的灵活性。最后,还要注意的是这两种方式有时候是不兼容的。你把越多的代码移到C里,LuaJIT所能带来的优化就越少。



[1]  JIT即Just-in-time,在这里指即时编译器。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua_IDEA_的环境配置发布时间:2022-07-22
下一篇:
go语言web开发系列之十七:用go-redis+lua实现顺序自增的唯一id发号器 ...发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap