iPad canvas的性能差到零

iPad canvas very bad to zero performance

本文关键字:性能 canvas iPad      更新时间:2023-09-26

我创建的javascript库只是翻译一张图片并将其缩放。触摸事件和鼠标事件的使用取决于什么设备。

我在Firefox (7.0.1), iPhone 3GS (ios5.0)和iPhone 4 (ios5.0)上运行了这段javascript代码,性能都很流畅,没有任何问题。

然后我在iPad 1 (iOS 5.0)上运行它,尽管缩放和翻译图片有效,但性能较慢。

最后一次测试是在ipad2 (iOS 4.3.3)上进行的,在这里我遇到了和ipad1一样的缩放缓慢的性能,但翻译根本无法工作。

我不知道这是怎么回事,因为iPhone应该比iPad弱得多。我将感谢任何帮助或意见,让我走上正确的轨道。

http://pastebin.com/wZ7e77yq

更新

我刚刚在iPad 2 (iOS 5.0)上运行了它,它运行得完美无瑕。我也试过iPhone 3GS (iOS 4.2.1),它不起作用,和iOS 4.3.3一样。这意味着我的应用程序需要iOS 5.0才能运行…在ios5.0之前,你真的不能翻译对象吗?

更新2

我刚刚在三个不同的iPad 15 (iOS 5.0)上运行了它,效果不是很好。iPhone 4和iPad 1最大的区别是什么?规格几乎相同。翻译也没有工作,因为函数事件。pageY/X在iOS 5之前不能工作。使用event.touch修复了这个问题。pageX/Y。

我当时正在开发一款测试画布性能的小游戏,没有任何特殊的游戏框架,所以我尽量保持简单,因为这是我自己编写的。这个程序没有做什么特别的事情,只是用不同的操纵杆类型在屏幕上移动一个精灵,比如键盘和鼠标用于桌面点击,触摸事件用于iOS。我发现了以下内容:

  • 与触摸事件相比,直接在画布上使用轻击会导致性能差。
  • 触摸事件在不同的画布尺寸(1024x768)下运行良好。
  • 我没有尝试图片缩放,但这应该也很好。
  • 事件。pageX、事件。pageY在iPad (iOS5)上运行正常。

似乎iOS CANVAS支持是问题所在。iOS5有完整的GPU硬件加速CANVAS支持,而以前的版本支持CANVAS,尽管非常差。

令人惊讶的是,即使在iOS 5上,它也不能很好地在iPad 1上运行。您可以尝试关闭所有当前正在运行的应用程序,关闭所有其他浏览器选项卡,然后再次运行测试吗?