Eu tenho construído um jogo android no meu tempo livre. Está usando a biblioteca libgdx , então um pouco do trabalho pesado é feito para mim.
Durante o desenvolvimento, selecionei descuidadamente tipos de dados para alguns procedimentos. Eu usei uma hashtable porque queria algo próximo a uma matriz associativa. Valores-chave legíveis por humanos. Em outros lugares para conseguir coisas semelhantes, eu uso um vetor. Eu sei que a libgdx tem classes vector2 e vector3, mas nunca as usei.
Quando me deparo com problemas estranhos e procuro ajuda no Stack Overflow, vejo muitas pessoas redefinindo as perguntas que usam um determinado tipo de dados quando outro é tecnicamente "adequado". Como usar um ArrayList porque ele não requer limites definidos versus redefinir um int [] com novos limites conhecidos. Ou mesmo algo trivial como este:
for(int i = 0; i < items.length; i ++)
{
// do something
}
Eu sei que ele avalia item.length em cada iteração. No entanto, também sei que os itens nunca terão mais de 15 a 20 itens. Por isso, devo me preocupar em avaliar itens.length em cada iteração?
Fiz alguns testes para ver o desempenho do aplicativo usando o método que acabei de descrever versus o adequado, siga o tutorial e use os tipos de dados exatos sugeridos pela comunidade. Os resultados: A mesma coisa. Média de 45 fps. Abri todos os aplicativos na guia telefone e galáxia. Não faz diferença.
Então, acho que minha pergunta é: existe um limite quando não importa mais ser adequado? Tudo bem dizer - "desde que o trabalho seja feito, eu não me importo?"