iOS和其他平板电脑上SVG的性能状态?
在决定使用D3.js和SVG进行可视化之后,现在看来SVG在桌面浏览器或本机shell中可以很好地工作,但iOS移动平台上性能速度的下降确实让我感到困惑 根据以下测试,SVG的性能现在看起来越来越好,与画布速度相差不远,这是个好消息:iOS和其他平板电脑上SVG的性能状态?,ios,performance,svg,d3.js,Ios,Performance,Svg,D3.js,在决定使用D3.js和SVG进行可视化之后,现在看来SVG在桌面浏览器或本机shell中可以很好地工作,但iOS移动平台上性能速度的下降确实让我感到困惑 根据以下测试,SVG的性能现在看起来越来越好,与画布速度相差不远,这是个好消息: 坏消息是,如果在新iPad上的Safari浏览器中运行这些测试,SVG和Canvas的速度都会大幅下降。可怕的消息是,如果你在iPad的新Chrome浏览器中运行这些测试,速度会下降得更多 我已经读到谷歌被迫使用UIWebview,而苹果的Nitro Ja
底线是,由于这些速度问题,我不确定使用HTML5技术制作我的应用程序是否可行?我对学习Objective-C也没有兴趣,因为未来将是HTML5。我相信网络和它的标准,但看起来它们被屏蔽了。我很想知道这个难题的解决方案。移动设备的性能通常低于桌面套件。一般来说,他们的硬件功能不太强大(它更倾向于低功耗,而不是直接的速度),而且他们的RAM和存储空间少得多。我的桌面上的Chrome有多个处理器、8gb RAM和一个功能强大得离谱的GPU。在我的iPad上,它没有任何接近这个级别的功率 第三方iOS应用程序(包括Chrome)不能使用Nitro,这是正确的。我认为这是因为Nitro能够将内存标记为可执行的,并且(出于安全原因)不信任第三方应用程序可以这样做。大多数HTML5都可以在iOS上的任何浏览器中使用(Opera Mini可能除外)。画布和SVG动画将比Safari慢,因为它们都是由Javascript驱动的——同样,缺少对Nitro的访问限制了它们的发展。这不再是事实:从iOS 8开始,第三方应用现在可以使用
WKWebView
框架,它确实可以访问与Safari相同的高速javascript引擎
本机代码通常会更快,因为它更接近硬件,直接命中显示API,而不是通过web堆栈
解决办法通常是简化一切。就像本地游戏开发者必须大幅降低3D游戏的复杂性,才能在iOS设备上运行一样,网络开发者也必须降低SVG和canvas应用程序的复杂性。一般来说,页面上的内容越少,性能就越高
你可以做很多技巧,围绕这个主题阅读很多文章。有一个阅读,和谷歌的其余部分。就我个人而言,在完全放弃这个想法之前,我会建立一个概念证明并进行测试:)我发现第一代iPad上的d3.js/SVG比在桌面浏览器(FF/Chrome/IE 9+)上运行相同的应用程序要慢得多
我在这里写下了我尝试的各种改进:iOS7使用JavaScript制作SVG动画的性能非常差,尽管静态SVG绘制速度要快得多。我们写了一篇文章,你可以看到更多血淋淋的细节
更新:iOS7.1修复了javascript动画性能问题。回到50 fps今天发现了一些相当奇怪的事情:只要设置笔划颜色,SVG的性能就会急剧下降。没有笔触颜色,它更活泼。填充颜色似乎并不重要。