Ottimizzazione del codice in Java
Pavlos Kosmetatos
Lead Engineer @Wealthyhood
Gestione manuale della memoria (C/C++)
$$
Garbage collection in Java

Compromessi di performance del GC
$$
Algoritmi di GC
// Male: creare molti oggetti di breve durata for (int i = 0; i < 1000000; i++) { new Object(); // Diventa subito garbage }// Meglio: riusare oggetti Object obj; for (int i = 0; i < 1000000; i++) { obj = new Object(); // Una sola referenza }
// Evita questo nel codice critico per le prestazioni String result = ""; for (int i = 0; i < 100000; i++) { result += i; // Crea una nuova String ogni volta }// Meglio così StringBuilder builder = new StringBuilder(); for (int i = 0; i < 100000; i++) { builder.append(i); // Riusa lo stesso buffer } String result = builder.toString();
// Rami prevedibili aiutano l’ottimizzazione del JIT
if (value > 0) {
// Codice A - percorso frequente
} else {
// Codice B - percorso raro
}
Ottimizzazione del codice in Java