Quando scrivi qualcosa che crea spesso molti (1000) piccoli oggetti, dovresti cercare di minimizzarlo per le prestazioni? Soprattutto se non sai su quale sistema verrà eseguito, dai desktop di fascia bassa a quella di fascia alta o addirittura mobile. Per i dispositivi mobili, ho sentito che la creazione di molti oggetti ostacola un po 'le prestazioni, anche se non so quanto sia vero.
Ho un esempio che mostra bene questa idea. In un programma di grafica, supponiamo che esista un metodo utilizzato per tutti i disegni idealmente chiamati drawPixel(Point)
. Potrebbero esserci migliaia di punti creati e può essere ripetuto spesso, come in un gioco in cui potrebbe essere chiamato più di 60 volte al secondo. In alternativa, drawPixel(int x, int y)
potrebbe essere utilizzato per ridurre al minimo la creazione di molti oggetti Point.
In un design orientato agli oggetti, penso che sarebbe preferito usare Point. Tuttavia, l'utilizzo di tipi primitivi può aumentare le prestazioni. Il miglioramento delle prestazioni può essere trascurabile nella maggior parte dei casi, ma non sono sicuro di cose come le macchine mobili o vecchie. Qual è il guadagno prestazionale dal fare qualcosa del genere ed è qualcosa che dovrebbe essere preso in considerazione?
System.getProperty("java.version")
(o "java.vm.version") è un punto di partenza.