iOS和其他平板电脑上的SVG性能状态?

use*_*052 38 performance svg ios d3.js

决定使用D3.js和SVG进行可视化后,现在看起来SVG可以在桌面浏览器或本机shell中正常工作,但我真的对iOS移动平台上的性能速度下降感到困惑.

根据以下测试,现在看起来SVG性能越来越好,并没有远远落后于Canvas速度,这是个好消息:

坏消息是,如果你在新iPad上的Safari浏览器中运行这些测试,SVG和Canvas的速度都会下降很多.可怕的消息是,如果你在iPad的新Chrome浏览器中运行这些测试,速度会下降得更多.

我读过谷歌被迫使用未被Apple的Nitro JavaScript引擎加速的UIWebview.我还读到Apple正在推动HTML5,但演示只能在他们自己的Safari浏览器中运行.

这有什么问题吗?我的应用程序的最佳目标是移动,即使有很好的API,如D3.js和HTML5标准,如SVG性能受到挤压,这是因为Apple想要为自己的议程保持进步吗?无论如何,这对我来说是怎样的.我不确定Android上的这些测试是什么样的?很高兴知道.如果测试结果是肯定的,我可能会摆脱iPad并且已经使用Android了.

最重要的是,由于这些速度问题,我不确定使用HTML5技术制作应用程序是否可行?我也没兴趣学习Objective-C,因为未来将转向HTML5.我相信网络及其标准,但看起来它们被封锁了.我很想知道解决这个难题的方法.

Mic*_*any 7

iOS7在使用JavaScript动画SVG方面表现不佳 - 尽管静态SVG绘图速度更快.我们写了一篇关于iOS7版本性能的博客,你可以看到更多血腥细节.

更新:iOS7.1修复了javascript动画性能问题.它回到了50 fps


Oll*_*son 0

移动设备上的性能通常低于桌面套件上的性能。一般来说,他们的硬件功能不太强大(它更注重低功耗而不是纯粹的速度),而且他们的 RAM 和存储空间要少得多。我桌面上的 Chrome 拥有多个处理器、8GB RAM 和一个强大得离谱的 GPU 可供使用。在我的 iPad 上,它的功率远没有达到这个水平。

第三方 iOS 应用程序(包括 Chrome)不能使用 Nitro,这是正确的。我相信这是因为 Nitro 能够将内存标记为可执行文件,并且(出于安全原因)第三方应用程序不信任这样做。大多数 HTML5 内容都可以在 iOS 上的任何浏览器中运行(Opera Mini 可能除外)。Canvas 和 SVG 动画将比 Safari 慢,因为它们都是由 Javascript 驱动的 - 再次缺乏对 Nitro 的访问阻碍了它们。这不再是事实:从 iOS 8 开始,第三方应用程序现在可以使用该WKWebView框架,该框架确实可以访问与 Safari 相同的高速 JavaScript 引擎。

本机代码通常会更快,因为它更接近硬件,直接访问显示 API,而不是通过 Web 堆栈。

解决方案通常是简化一切。就像原生游戏开发人员必须大幅降低 3D 游戏的复杂性才能使其在 iOS 设备上运行一样,Web 开发人员也必须降低 SVG 和画布应用程序的复杂性。一般来说,页面上飞来飞去的东西越少意味着性能越高。

您可以使用许多技巧,并围绕该主题进行大量阅读。阅读http://www.html5rocks.com/en/tutorials/canvas/performance/http://www.html5gamedevs.com/tag/performance/以及 Google 的其他内容。就我个人而言,我会建立一个概念证明并在完全放弃这个想法之前对其进行测试:)