Во время работы над игровым проектом для Android я искал информацию об оптимизации производительности игрового кода. И я узнал, что использование Java- коллекций, таких как List, Arraylist и т. Д., Не поощряется в игровых кодах, хотя коллекция является полезным инструментом в Java-программировании. Почему так? Хотелось бы узнать технические подробности о том, как сильно фреймворк Collection может оказать на системы Android и почему? Любая помощь в этом отношении будет отличной.
10
Ответы:
В основном это касается выделения памяти и сборки мусора. Выделение памяти во время выполнения дает вашему сборщику мусора возможность вынести мусор. Что вредит вашей работе. GC должно происходить как можно реже.
Большинство коллекций Java:
А) Выделите больше памяти, чем им нужно.
Б) Выделите память, когда вы не хотите, чтобы они.
C) Выделите память для каждого итератора при выполнении итерации по коллекции.
Чтобы обойти эти вещи:
А) Выделите коллекции с фиксированными размерами. то есть. создавать пулы объектов.
Б) Выделите эти пулы в программе init.
C) Избегайте for (Object obj: collection) для тех типов коллекций, у которых есть метод size () и метод .get (int index).
источник