W wolnym czasie buduję grę na Androida. Korzysta z biblioteki libgdx, więc trochę ciężkiego podnoszenia jest dla mnie zrobione.
Podczas opracowywania niedbale wybrałem typy danych dla niektórych procedur. Użyłem hashtable, ponieważ chciałem czegoś zbliżonego do tablicy asocjacyjnej. Kluczowe wartości czytelne dla człowieka. W innych miejscach, aby osiągnąć podobne rzeczy, używam wektora. Wiem, że libgdx ma klasy vector2 i vector3, ale nigdy ich nie użyłem.
Kiedy napotykam dziwne problemy i szukam pomocy w przepełnieniu stosu, widzę, że wiele osób po prostu rozmyśla o pytaniach, które wykorzystują określony typ danych, gdy inny jest technicznie „właściwy”. Jak użycie ArrayList, ponieważ nie wymaga zdefiniowanych granic w porównaniu z ponownym zdefiniowaniem int [] z nowymi znanymi granicami. Lub nawet coś tak trywialnego:
for(int i = 0; i < items.length; i ++)
{
// do something
}
Wiem, że ocenia item.length na każdej iteracji. Jednak wiem też, że przedmioty nigdy nie będą miały więcej niż 15 do 20 przedmiotów. Czy powinno mnie to obchodzić, jeśli oceniam item.length przy każdej iteracji?
Przeprowadziłem kilka testów, aby zobaczyć, jak działa aplikacja przy użyciu metody, którą właśnie opisałem, w porównaniu z właściwą, postępuj zgodnie z samouczkiem i używaj dokładnych typów danych sugerowanych przez społeczność. Rezultaty: To samo. Średnio 45 fps. Otworzyłem każdą aplikację na karcie telefonu i galaktyki. Bez różnicy.
Sądzę więc, że moje pytanie brzmi: czy istnieje próg, kiedy nie ma już znaczenia, aby być poprawnym? Czy można powiedzieć, że „dopóki wykona zadanie, to mnie to nie obchodzi?”