We wszystkich podręcznikach o programowaniu przytacza się zasadę, że kodu nie wolno optymalizować. I nawet nie próbuj programisto, bo popsujesz! Nie jestem zwolennikiem takiego myślenia, bowiem czasem zdarza się, że napiszemy bardzo nieoptymalny kod i warto go zoptymalizować (oczywiście, cudzego kodu optymalizować nie wypada ;P).

Dlaczego to piszę? Jak we wszystkich poprzednich postach, znowu muszę wspomnieć o mudzie… Podczas pisania zauważyłem, że gdy użytkownik wyda jakąkolwiek komendę, zużycie ramu zwiększa się nawet o 50kb! Na szczęście szybko znalazłem przyczynę. Okazało się, że, jak zwykle winny jest programista, a nie kto inny. Otóż gdy użytkownik wpisywał komendę tworzona była nowa klasa Command, która tą komendę przetwarzała. I tu był błąd! Przy każdym tworzeniu tej klasy kompilator musiał zarezerwować pamięć. Szybko zorientowałem się, o co chodzi i poprawiłem kod tak, że klasa Command jest tworzona, gdy użytkownik wejdzie do gry, a potem jest wywoływana tylko jej metoda. Wspaniały profiler netbeansa pokazał wyraźnie różnicę w zużyciu pamięci.