Enquanto trabalhava em um projeto de jogo para Android, estava procurando algumas informações sobre otimização de desempenho para o código do jogo. E vim a saber que o uso de Java Collections como List, Arraylist etc não é incentivado em códigos de jogos, embora a coleção seja uma ferramenta útil na programação Java. Por que é assim? Gostaria de saber detalhes técnicos sobre quanto impacto o framework Collection pode ter nos sistemas Android e por quê? Qualquer ajuda a esse respeito será ótima.
10
Respostas:
É principalmente sobre alocação de memória e coleta de lixo. As alocações de memória durante o tempo de execução oferecem ao coletor de lixo a chance de trazer o lixo para fora. O que prejudica o seu desempenho. O GC deve acontecer o mais raramente possível.
A maioria das coleções java:
A) Aloque mais memória do que eles precisam.
B) Aloque memória quando não desejar.
C) Aloque memória para cada iterador ao iterar através de uma coleção.
Para contornar essas coisas:
A) Aloque coleções com tamanhos fixos. ie crie conjuntos de objetos.
B) Aloque esses pools no programa init.
C) Evite o for (Object obj: collection) para os tipos de coleção que possuem um método size () e .get (int index).
fonte