Codeoptimierung in Java
Pavlos Kosmetatos
Lead Engineer @Wealthyhood
Manuelles Speichermanagement (C/C++)
$$
Javas Garbage Collection

GC: Performance-Abwägungen
$$
GC-Algorithmen
// Schlecht – viele kurzlebige Objekte erzeugen for (int i = 0; i < 1000000; i++) { new Object(); // Wird sofort zu Garbage }// vs. Objekte wiederverwenden Object obj; for (int i = 0; i < 1000000; i++) { obj = new Object(); // Nur eine Referenz }
// In performancekritischem Code vermeiden String result = ""; for (int i = 0; i < 100000; i++) { result += i; // Erstellt jedes Mal ein neues String-Objekt }// Besserer Ansatz StringBuilder builder = new StringBuilder(); for (int i = 0; i < 100000; i++) { builder.append(i); // Nutzt denselben Puffer } String result = builder.toString();
// Vorhersagbare Verzweigungen helfen der JIT-Optimierung
if (value > 0) {
// Code A – häufig genommener Pfad
} else {
// Code B – seltener Pfad
}
Codeoptimierung in Java