38 votes

Etat des performances SVG sur iOS et autres tablettes?

Ayant décidé d'aller avec D3.js et SVG pour des visualisations, il semble maintenant que le SVG fonctionnera correctement dans un navigateur de bureau ou natif shell, mais je suis vraiment perplexe par la baisse de la performance de la vitesse sur la plate-forme mobile iOS.

Selon les tests suivants, il semble maintenant que le SVG performance est de mieux en mieux et pas bien loin derrière la Toile vitesses, c'est la bonne nouvelle:

La mauvaise nouvelle est que si vous exécutez ces tests dans le navigateur Safari sur le nouvel iPad, les vitesses de chute de beaucoup de choses pour les deux SVG et Canvas. La terrible nouvelle est que si vous exécutez ces tests dans le nouveau navigateur google Chrome pour iPad les vitesses de chute de beaucoup plus.

J'ai lu que Google est obligé d'utiliser la UIWebview qui n'est pas accélérée par Apple du moteur JavaScript Nitro. J'ai aussi lu qu'Apple pousse HTML5 mais les démos ne sont exécutées que dans leur propre navigateur Safari.

Quel est le problème ici, de toute façon? La meilleure cible pour mon application est mobile et même avec le plus grand API est comme D3.js et les normes HTML5 comme SVG performance est pincé, est-ce juste parce que Apple veut garder les progrès de leur propre ordre du jour? C'est à quoi il ressemble pour moi de toute façon. Je ne suis pas sûr de ce que ces tests comme sur Android? Il serait bon de savoir. Si le test est positif je vais peut-être se débarrasser de l'iPad et juste aller avec Android déjà.

La ligne de fond est que je ne sais pas si c'est faisable de faire mon application en utilisant la technologie HTML5 en raison de ces problèmes de vitesse? Je n'ai aucun intérêt à en apprendre Objective-C que l'avenir va HTML5. Je crois que dans le web et ses standards mais on dirait qu'ils sont bloqués. Je suis très intéressé de connaître des solutions à ce dilemme.

7voto

Michael Mullany Points 9020

iOS7 a notamment de mauvaises performances en animant SVG avec JavaScript - bien que le dessin en SVG statique soit énormément plus rapide. Nous avons écrit un blog sur les performances de la version iOS7 , que vous pouvez voir pour plus de détails sanglants.

Mise à jour: iOS7.1 a résolu le problème de performances d'animation javascript. C'est de retour à 50 images par seconde

3voto

MarkH Points 105

J'ai trouvé d3.js / SVG sur mon premier iPad de première génération, beaucoup plus lentement que d'exécuter la même application sur des navigateurs de bureau (FF / Chrome / IE 9+).

J'ai écrit les différentes améliorations que j'ai essayées ici: http://hivemindmap.blogspot.co.uk/2013/01/html5-and-interactive-graphs.html

0voto

Olly Hodgson Points 4839

Les performances seront généralement plus faible sur les appareils mobiles que sur les ordinateurs kit. En général, leur matériel est moins puissant (c'est davantage orientée vers la consommation de puissance faible que simplement la vitesse) et ils ont un enfer de beaucoup moins de RAM et de stockage de jouer avec. Google Chrome sur mon ordinateur de bureau dispose de plusieurs processeurs, 8 go de RAM et un ridiculement puissant GPU à sa disposition. Sur mon iPad, il n'est pas n'importe où près de ce niveau de pouvoir.

3ème partie des applications iOS (y compris google Chrome) ne peut pas utiliser la Nitro, c'est correct. Je crois que c'est parce que Nitro est capable de marquer la mémoire comme exécutable et (pour des raisons de sécurité) 3ème partie les applications ne sont pas approuvés pour le faire. La plupart HTML5 choses vont travailler dans n'importe quel navigateur sur iOS (avec l'exception possible de Opera Mini). Canvas et SVG animation sera plus lente que dans Safari, car il est tous animés par Javascript - encore une fois le manque d'accès à la Nitro qui les retient.

Code natif sera généralement plus rapide car il est beaucoup plus proche du matériel, de frapper l'écran Api directement, plutôt que de passer par le web de la pile.

La solution est généralement de tout simplifier. De la même manière que le natif de développeurs de jeux ont dû réduire massivement la complexité de leurs jeux en 3D pour le faire fonctionner sur les appareils iOS, de sorte que les développeurs web ont pour but de réduire la complexité de leurs SVGs et toile applications. Moins de choses de voler autour de la page signifie de meilleures performances, en général.

Il y a un certain nombre de trucs que vous pouvez faire, et beaucoup de lecture autour de l'objet. Avoir une lecture de http://www.html5rocks.com/en/tutorials/canvas/performance/, http://www.html5gamedevs.com/tag/performance/, et le reste de Google. Personnellement, j'aimerais construire une preuve de concept et de le tester avant de complètement abandonner l'idée :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X