【精选】lua5.4.2(使用Lua54程序) 与 Lu2.0(使用OpenLu程序)速度比较 您所在的位置:网站首页 lua52和53差别大吗 【精选】lua5.4.2(使用Lua54程序) 与 Lu2.0(使用OpenLu程序)速度比较

【精选】lua5.4.2(使用Lua54程序) 与 Lu2.0(使用OpenLu程序)速度比较

2023-11-17 14:29| 来源: 网络整理| 查看: 265

lua5.4.2(使用Lua54程序) 与 Lu2.0(使用OpenLu程序)速度比较

lua5.4.2(Lua54程序):请从Lua官方网站下载。 Lu2.0(OpenLu程序):http://www.forcal.net/xiazai/lu2/openlu64.zip 关于Lu脚本,参考:Lu脚本教程

C/C++调用Lua脚本函数的效率,与C/C++调用Lu脚本函数的效率差别不大,本文不做讨论,参考:C/C++调用Lu脚本函数。

Lu协程的速度远胜于Lua协程,主要是协程运行机理不同导致的。Lua使用create方法将一个函数(函数名假设为a)创建为协程,此函数运行时任何地方(例如该函数又调用了其他函数的地方)遇到yield语句(即便函数a中没有yield语句),该函数a将挂起,直至使用resume方法重启该线程。Lu协程很简单,不使用任何方法创建协程,只要函数中使用yield语句即认为是一个协程,下一次调用将从yield语句的下一条语句开始执行,协程参数传递也总是从函数入口处进行的。

下面仅比较Lua脚本与Lu脚本本身的效率,结果表明,平均来说,Lua脚本比Lu脚本速度略快,但差别不大(协程除外)。

例子1:数值计算

Lua代码:

function z()     local t = os.clock()     local mcos = math.cos     local msin = math.sin     local x=0     local y=0     local z=0     for x=0,1,0.0011 do         for y=1,2,0.0011 do             z=z+mcos(1-msin(1.2*(x+0.1)^(y/2-x)+mcos(1-msin(1.2*(x+0.2)^(y/3-x))))-mcos(1- msin(1.2*(x+0.3)^(y/4-x)))-mcos(1-msin(1.2*(x+0.4)^(y/5-x)+mcos(1-msin(1.2*(x+0.5)^(y/6-x))))- mcos(1-msin(1.2*(x+0.6)^(y/7-x)))))          end     end     io.write(z)     io.write(string.format(" Time Elapsed %f\n", os.clock() - t)) end z()

Lua运行结果:

19160.536601703 Time Elapsed 1.67

Lu代码1:

mvar:    //使用未定义的模块变量。变量未定义就可以使用,容易隐藏不可预知的错误,故后面不再使用这种方法 t=clock(),  z=0.0,  x=0.0, while{    x


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有