Pisząc coś, co często tworzy wiele (1000) małych obiektów, powinieneś spróbować zminimalizować to pod kątem wydajności? Zwłaszcza jeśli nie wiesz, na jakim systemie będzie on działał, od niskich do wysokiej klasy komputerów stacjonarnych, a nawet urządzeń mobilnych. W przypadku urządzeń mobilnych słyszałem, że tworzenie wielu obiektów nieco utrudnia wydajność, choć nie wiem, jak to jest prawdziwe.
Mam przykład, który dobrze pokazuje ten pomysł. W programie graficznym powiedzmy, że istnieje metoda, która jest używana do wszystkich idealnie rysowanych rysunków drawPixel(Point)
. Można utworzyć tysiące punktów i można je często powtarzać, tak jak w grze, w której można je nazwać 60+ razy na sekundę. Alternatywnie drawPixel(int x, int y)
można użyć do zminimalizowania tworzenia wielu obiektów Point.
Myślę, że w projektowaniu obiektowym preferowane byłoby używanie Point. Jednak użycie typów pierwotnych może zwiększyć wydajność. W większości przypadków wzrost wydajności może być nieznaczny, ale nie jestem pewien, czy chodzi o urządzenia mobilne czy starsze. Jaki jest wzrost wydajności po zrobieniu czegoś takiego i czy należy to wziąć pod uwagę?
System.getProperty("java.version")
(lub „java.vm.version”) jest punktem początkowym.