测试项目:
每帧移动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: 预览的时候内容存在危险字符是什么。。