Pracując nad projektem gry dla Androida, szukałem informacji na temat optymalizacji wydajności kodu gry. I dowiedziałem się, że korzystanie z kolekcji Java, takich jak Lista, Arraylist itp., Nie jest zalecane w kodach gier, chociaż kolekcja jest przydatnym narzędziem w programowaniu Java. Dlaczego tak jest? Chciałbym poznać szczegóły techniczne, jak duży wpływ może mieć środowisko Collection na systemy Android i dlaczego? Każda pomoc w tym względzie będzie świetna.
10
Odpowiedzi:
Chodzi głównie o przydział pamięci i wyrzucanie elementów bezużytecznych. Przydziały pamięci w czasie wykonywania dają śmieciarzowi szansę na wyrzucenie śmieci. Co szkodzi twojej wydajności. GC powinno się zdarzać tak rzadko, jak to możliwe.
Większość kolekcji Java:
A) Przydziel więcej pamięci, niż potrzebują.
B) Przydziel pamięć, jeśli nie chcesz.
C) Przydziel pamięć dla każdego iteratora podczas iteracji w kolekcji.
Aby obejść te rzeczy:
A) Przydziel kolekcje o ustalonych rozmiarach. to znaczy. tworzyć pule obiektów.
B) Przeznaczyć te baseny przy programu init.
C) Unikaj for (Object obj: collection) dla tych typów kolekcji, które mają metodę size () i .get (int index).
źródło