Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS和其他平板电脑上SVG的性能状态?_Ios_Performance_Svg_D3.js - Fatal编程技术网

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

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

根据以下测试,SVG的性能现在看起来越来越好,与画布速度相差不远,这是个好消息:

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

我已经读到谷歌被迫使用UIWebview,而苹果的Nitro JavaScript引擎并没有加速它。我还读到,苹果正在推广HTML5,但演示只在他们自己的Safari浏览器中运行

这里到底有什么问题?我的应用程序的最佳目标是移动设备,但即使是像D3.js这样的优秀API和SVG这样的HTML5标准,性能也受到了限制,这是否仅仅是因为苹果想为自己的日程拖延进度?不管怎么说,这就是我的看法。我不确定这些测试在Android上是什么样子的?很高兴知道。如果测试结果是肯定的,也许我会放弃iPad,直接使用Android


底线是,由于这些速度问题,我不确定使用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的性能就会急剧下降。没有笔触颜色,它更活泼。填充颜色似乎并不重要。