Lua性能优化技巧(六):最后的提示

 更新时间:2015年04月21日 09:05:01   投稿:junjie  
这篇文章主要介绍了Lua性能优化技巧(六):最后的提示,本文是系列文章的最后一篇,其它文章请参考本文的相关文章,需要的朋友可以参考下

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

我们在这里讨论的技巧既不是唯一的,也不是最重要的方面。我们在这里专注于讨论专门针对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,在这里指即时编译器。

相关文章

  • 实现Lua中数据类型的源码分享

    实现Lua中数据类型的源码分享

    在Lua中有8种基础类型,像其他动态语言一样,在语言中没有类型定义的语法,每个值都携带了它自身的类型信息。下面我们就来尝试通过Lua 5.2.1的源码来看类型的实现
    2015-04-04
  • 详解Lua中的while循环语句的使用

    详解Lua中的while循环语句的使用

    这篇文章主要介绍了详解Lua中的while循环语句的使用,是Lua入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 用sysbench来测试MySQL的性能的教程

    用sysbench来测试MySQL的性能的教程

    这篇文章主要介绍了用sysbench来测试MySQL的性能的教程,使用Lua脚本操作,需要的朋友可以参考下
    2015-04-04
  • 简单的Lua 连接操作mysql数据库的方法

    简单的Lua 连接操作mysql数据库的方法

    lua连接数据库不只luasql这个库,但目前更新最快的的貌似是这个luasql,他是开源的,下面我们就来看看如何来具体操作吧
    2015-10-10
  • Lua教程(二):基础知识、类型与值介绍

    Lua教程(二):基础知识、类型与值介绍

    这篇文章主要介绍了Lua教程(二):基础知识、类型与值介绍,本文讲解了Hello World程序、代码规范、全局变量、类型与值等内容,需要的朋友可以参考下
    2015-04-04
  • Lua教程(十九):C调用Lua

    Lua教程(十九):C调用Lua

    这篇文章主要介绍了Lua教程(十九):C调用Lua,本文讲解了C调用Lua基础知识、table操作、调用Lua函数等内容,需要的朋友可以参考下
    2015-04-04
  • Lua中函数的几个特别之处探究

    Lua中函数的几个特别之处探究

    这篇文章主要介绍了Lua中函数的几个特别之处探究,本文讲解了Lua的函数创建、函数的参数、函数参数个数自适应、函数多重返回值等内容,需要的朋友可以参考下
    2014-09-09
  • 使用lua实现php的print_r()函数功能

    使用lua实现php的print_r()函数功能

    笔者比较熟悉php,所以一直在做一些使用lua来实现php中函数的功能,算是自己对lua理解的一个小测试吧
    2014-11-11
  • linux系统安装Nginx Lua环境

    linux系统安装Nginx Lua环境

    因项目需求,需要在Linux系统下搭建一套nginx+lua的开发环境,经过一番摸索,现总结如下,希望大家能够喜欢。
    2016-12-12
  • Lua中pairs与ipairs的区别总结

    Lua中pairs与ipairs的区别总结

    这篇文章主要给大家介绍了关于Lua中pairs与ipairs区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-09-09

最新评论