2010-06-14 8 views
0

Ceci est probablement une tâche facile. J'ai environ 20 TextViews/ImageViews dans mon projet actuel que je l'accès comme ceci:Android - Création d'objet/Allocation mémoire vs Performance

((TextView)multiLayout.findViewById(R.id.GameBoard_Multi_Answer1_Text)).setText(""); 

//or 

((ImageView)multiLayout.findViewById(R.id.GameBoard_Multi_Answer1_Right)).setVisibility(View.INVISIBLE); 

Ma question est la suivante, je suis mieux, du point de vue de la performance, juste l'attribution de ces variables d'objet? De plus, est-ce que je perds une certaine performance au processus de "recherche" constant qui continue dans le cadre de la méthode findViewById (...)? (ie findViewById (...) utilise-t-il une sorte de hashtable/hashmap pour les recherches ou implémente-t-il une recherche itérative sur la hiérarchie des vues?)

Actuellement, mon programme n'utilise jamais plus de 2,5 Mo de RAM , affectera donc 20 ou plus de variables d'objet affectent radicalement cela? Je ne pense pas, mais j'ai pensé que je demanderais.

Merci.

Répondre

1

Oui, ce serait correct de mettre en cache les références aux vues. Voilà à quoi sert le Tag/Holder de ListView qui est là pour des raisons de performances.