JEnterprise Senior Java Workbench
Senior Java · Fachbereich

Performance Engineering

Messbare Latenz, Durchsatz, Ressourcennutzung, Lasttests und Kapazitätsplanung. Nutze die Seite für eine konkrete Engineering-Aufgabe: Kläre zuerst Ziel und Risiko und halte danach Ergebnis, Nachweis und nächsten Schritt fest.

Zur Übersicht

Arbeitsauftrag

Wann verwenden?

Wenn Latenz, Durchsatz oder Ressourcenverbrauch ein messbares Ziel verfehlen.

Nicht dafür verwenden

Nicht für Optimierungen ohne Baseline, Lastprofil oder geschäftliche Relevanz.

Definition of Done

Baseline, Budget und Lastmodell stehen fest; Engpass ist belegt; Verbesserung und Regressionstest sind reproduzierbar.

Vor Optimierung belastbar messen
Engpass und Symptom unterscheiden
Performance-Budgets als Qualitätsanforderung behandeln

Vom Symptom zur Messung

Symptom Erste Evidenz Typische Hypothese Gegenprobe
hohe p95-Latenz Trace und Histogramm langsamer Downstream Abhängigkeit isoliert belasten
CPU-Sättigung Profil und Run Queue Hot Path oder Serialisierung Flame Graph vor und nach Fix
steigender Speicher Heap-Trend und GC Retention oder Cache Heap-Diff unter konstanter Last
Hypothesenbasiertes Vorgehen

Performancearbeit beginnt mit einem reproduzierbaren Szenario und einer Messgröße. Danach werden Hypothesen priorisiert und einzeln geprüft.

Lokale Microbenchmarks erklären keine verteilte End-to-End-Latenz; Lasttests erklären nicht automatisch die Ursache.

TEXT
Ziel: p95 unter 250 ms bei 300 Requests/s
Ist: p95 780 ms
Hypothese 1: Connection Pool erschöpft
Messung: active=max, pending>0
Experiment: Pool +20 %, DB-Auslastung beobachten
Ergebnis: keine Verbesserung → Hypothese verworfen
JMH

JMH kontrolliert Warm-up, Forks und Compileroptimierungen. Ergebnisse müssen zusammen mit JVM, Hardware und Parametern dokumentiert werden.

JAVA
@Benchmark
public Money calculateTotal() {
    return pricingPolicy.calculate(orderDraft);
}
Lastprofile

Load, Stress, Spike und Soak Tests beantworten unterschiedliche Fragen. Ein realistisches Profil enthält Verteilung, Think Time, Datenvolumen und Abhängigkeiten.

Praxisartefakt · Performance Budget

Use Case
POST /checkout bei 120 Requests pro Sekunde.
Budget
p50 180 ms, p95 450 ms, p99 900 ms.
Ressourcen
CPU unter 70 Prozent, Pool-Wartezeit unter 20 ms.
Lastprofil
70 Prozent Standard, 25 Prozent Promotion, 5 Prozent Maximalwarenkorb.
Regression
Build stoppt bei mehr als 10 Prozent Verschlechterung zur Baseline.
⌂ Cockpit