La section “Évitez les énumérations où vous avez uniquement besoin d’Ints” a été supprimée de la documentation officielle du développeur . (Voir Pourquoi Android n’utilise-t-il pas plus de énumérations? Pour l’ancien contenu de la section)
Pourquoi? Y a-t-il eu un changement dans la machine virtuelle Android qui a rendu le conseil obsolète?
la version originale de ce document n’était qu’un ensemble de préjugés. Il a été réécrit pour ne contenir que des faits sauvegardés par des tests de performances réels, et il est mis à jour lorsque la machine virtuelle est mise à jour. Vous trouverez les différents tests – ainsi que certains des tests que nous utilisons pour optimiser les bibliothèques de base – à l’ adresse http://code.google.com/p/dalvik/ .
Un invité:
Ainsi, pour les exigences relativement banales d’une application d’interface graphique, les avantages des énumérations en termes de temps de développement dépassent de loin les coûts d’exécution supplémentaires.
Elliott Hughes offre plus de détails sur la réécriture de la documentation sur son blog: http://elliotth.blogspot.com/2010/09/java-benchmarks.html
La seconde moitié du message explique que chaque réclamation figurant dans le document Performance est désormais complétée par des tests de performance. Les versions précédentes du document contenaient apparemment des allégations non vérifiées, telles que «Évitez les énumérations parce qu’elles sont trop chères».
La réponse de 2011 d’Elliot Hugues a indiqué que la raison originale d’éviter Enum était pour des raisons de performance … comme dans “la performance de traitement”. Cette raison n’étant pas étayée par des faits, elle a été retirée de la documentation officielle.
Il a été ajouté plus tard car les énumérations ajoutent beaucoup plus de données en mémoire que l’utilisation d’un entier.
Il est toujours mauvais pour les performances de la mémoire.
https://developer.android.com/training/articles/memory.html#Overhead