cocos2d-x cocos2dx-lua cocos2d-js性能测试

测试项目:
每帧移动1000个精灵,测试帧速率。

测试代码(每帧调用):
cpp:


void PerformanceTest::update(float dt)
{
    for (auto i = 0; i < MAX_SIZE; i++ ){
        auto x = _sprites->getPositionX();
        auto y = _sprites->getPositionY();
        _sprites->setPositionX(x+0.05);
        _sprites->setPositionY(y+0.05);
    }
}

js:


function PerformanceTest() {
    var pScene = cc.PerformanceTest.getInstance();
    for (var i = 0; i < 1000; i++) {
        var sprite = pScene.getSprite(i);
        var x = sprite.getPositionX();
        var y = sprite.getPositionY();
        sprite.setPositionX(x+0.05);
        sprite.setPositionY(y+0.05);
    }
}

lua:


function PerformanceTest()
    local test = cc.PerformanceTest:getInstance()
    for i = 0, 999 do
        local sprite = test:getSprite(i)
        local x = sprite:getPositionX()
        local y = sprite:getPositionY()
        sprite:setPositionX(x+0.05)
        sprite:setPositionY(y+ 0.05)
    end
end

结果(目测平均值):
cpp: 38.0 fps / 0.025s
js: 26.0 fps / 0.048s
lua: 11.3 fps / 0.087s

疑问:
cpp和js的帧速率都比较合理,但是lua为什么这么低?是我的测试有问题吗?
按照网上的说法和自己的感觉,lua应该是比js效率要高的。

ps: 预览的时候内容存在危险字符是什么。。

1赞

lua的高效在于jit字节码的优化,这个还需要字节码之后进行测试!!!

按照这个测试
http://www.blogjava.net/killme2008/archive/2010/03/02/314264.html

luajit 性能可能是原生lua的4倍,这个数字还是很可观的。
但是我在cocos2d-x使用luajit遇到一些问题还没搞明白。。
等搞定了再来发一下测试结果。

目前遇到的问题是用Luajit 编译替换lua文件后(其他没有做任何更改),在cocos2d运行提示错误
error: syntax error during pre-compilation.

似乎还应该做什么其他修改,又或者是cocos2dx中的luajit不支持64bit(我的开发环境是mac)?
你要知道的话麻烦告诉一下。

在cocos2d运行提示错误
error: syntax error during pre-compilation.
能看到多少行的错误么!
因为Cocos2d-x3.5版本是有个地方估计官方没留神,写错了会包这个错

没有提示多少行。
用的是3.7版本,我想了想应该是luajit不支持64位的缘故。
有什么好方法吗?我真是不会弄了。

http://blog.csdn.net/qq446569365/article/details/39698417 看帖子

看过了后面的补充。
如果只是加密,不编译的话,主观感觉不会提高效率。

是的 非但不会提升效率,反而会因为解密而损失效率。但是编译的话,需要升级到3.5+版本,试用64位的luajit