繁体   English   中英

为什么asm.js项目在Chrome和FireFox中的运行速度更快?

[英]Why is asm.js project running faster in Chrome then FireFox?

我已经使用emscripten将我的大学课程的游戏引擎项目从C / C ++移植到JavaScript。 asm.js优化标志已设置,我一直在测量性能。 但令人费解的是,Firefox中的性能很糟糕。 虽然该项目在Chrome和Opera中运行良好。 鉴于FireFox是使用asm.js优化的浏览器,这对我来说没有意义。

这个项目是一个使用SDL和WebGL的下坡障碍赛车游戏。 在我的笔记本电脑上运行Firefox,分析器显示该演示完全受CPU限制,瓶颈出现在_SDL_LockSurface()和_TTF_RenderText_Solid()周围。 这些用于渲染动态文本等。

然而在Chrome中,CPU在同一系统上大部分时间处于空闲状态。 Opera的性能也很相似。 这是否意味着asm.js优化不起作用? Firefox报告asm.js代码已成功编译。 那么为什么这种优化会得到回火并导致执行最多只有帧速率的一半? 我已经测试了FF版本28,也是当前的夜间版本。 该演示可在此处找到, http://www.susurrus.mars-station.com/page7.php?lang = en

我很长一段时间都在考虑这个问题,我可能会给你一个答案。 简单地说,摆脱canvas.getContext('2d') 我想asm.js根本不是你的问题。

正如@BorisZbarsky所说,这些是与asm.js无关的图形调用。 你回答说这些运行毫无困难。 我自己测试了它,并且在getContext之后可以使用很多东西,因为2D是重图形操作,你真的不能在实时fps上做。

那里有一个简单的例子: http//jsfiddle.net/windkiller/8r3gP/这是非常简单的动画,但它占我的CPU的60%。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM