4 votes

Pourquoi la réflexion ralentit-elle les téléphones Android ?

J'ai lu à plusieurs reprises que la réflexion ralentirait les performances du téléphone. Est-ce vrai ?

Par exemple, dans mon cas, je reçois certains paramètres d'un service web qui ont le même nom que les paramètres d'une classe que j'ai dans mon application Android. Je définis donc simplement les valeurs de ces paramètres en utilisant les champs java et la réflexion... cela ne semble pas ralentir les performances...

Quelqu'un peut-il m'expliquer ce qui se cache derrière cette idée que la réflexion ralentit les performances ?

7voto

Brian Cooley Points 6094

Jetez un coup d'œil à cette question . En fait, vous sortez du cadre des optimisations que le compilateur peut effectuer, car la réflexion se fait de manière dynamique.

Si vous ne faites pas beaucoup d'appels à la réflexion (par exemple, il serait mauvais de le faire à l'intérieur du getView d'un ListView), vous pouvez probablement vous en sortir. Elle est là pour être utilisée, mais il suffit de faire preuve de discernement.

4voto

CommonsWare Points 402670

est-ce vrai ?

Elle est plus lente que la non-utilisation de la réflexion. C'est quelque chose qu'il faut absolument éviter dans les boucles ou lors d'un traitement rapide de l'interface utilisateur (par exemple, le défilement d'un ListView).

Je reçois des paramètres d'un service web qui ont le même nom que les paramètres d'une classe que j'ai dans mon application Android. je fixe donc les valeurs de ces paramètres en utilisant les champs java et la réflexion... cela ne semble pas ralentir les performances...

C'est le cas, même si l'utilisateur ne le remarque pas dans ce cas.

Quelqu'un peut-il m'expliquer ce qui se cache derrière cette idée que la réflexion ralentit les performances ?

Voir le lien fourni par @Brian Cooley dans sa réponse. Gardez à l'esprit que la réflexion sur Dalvik (la machine virtuelle d'Android) peut être plus lente que la réflexion sur la VM Java - je suis en tout cas assez certain qu'elle n'est pas plus rapide.

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