Comment résoudre le XML parsing problème de performance sur Android

Je dois lire un fichier XML avec environ 4000 lignes sur Android. J'ai d'abord essayé la SimpleXML bibliothèque parce qu'il est plus facile et il a fallu environ 2 minutes sur mon HTC Desire. Alors j'ai pensé que peut-être SimpleXML est si lent à cause de la réflexion et de tous les autres de la magie que cette bibliothèque utilise. J'ai réécrit mon analyseur et utilisé le built-in DOM l'analyse de la méthode avec une attention particulière pour la performance. Qui a aidé un peu, mais il a fallu environ 60 secondes, ce qui est encore totalement inacceptable. Après un peu de recherche, j'ai trouvé cet article sur developer.com. Il y a quelques graphes qui montrent que les deux autres méthodes disponibles - l'analyseur SAX et Android XML Pull-Parser - sont tout aussi lent. Et à la fin de l'article vous trouverez la déclaration suivante:

La première surprise que j'ai eu était à la lenteur de l'ensemble des trois méthodes ont été. Les utilisateurs
vous ne voulez pas attendre longtemps pour les résultats sur les téléphones mobiles, de sorte que l'analyse
rien de plus que quelques dizaines de dossiers peuvent donner mandat à une autre méthode.

Ce que pourrait être un "autre méthode"? Que faire si vous avez plus que "quelques dizaines de dossiers"?

Qu'est-ce que le cas d'utilisation avec cette grande XML? Avez-vous de lire tout à la fois?
Je n'ai pas à lire l'ensemble du dossier à la fois. Mais cela rend les choses plus faciles. Il n'y a pas d'autre solution pour le problème de performance? 4000 lignes ne semble pas trop grand pour moi ... ou au moins, il ne devrait pas être trop gros
Sur Android il y a des problèmes de performances à l'aide d'annotations. Les récents communiqués sur Simple (2.6.6) ont résolu ces problèmes. Si vous mettez à niveau la bibliothèque que vous utilisez, alors vous pourriez voir des améliorations de l'ordre de 10 fois.

OriginalL'auteur Korbi | 2011-08-28