Kapitel 41. Java-Programmierung aus Sicht der JVM-Leistung

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Monica Beckwith

Tipp 1: Mach dich nicht über den Müll lustig

Ich finde, dass Java-Entwickler manchmal besessen davon sind, wie viel Müll ihre Anwendungen produzieren. In den wenigsten Fällen ist diese Art von Besessenheit gerechtfertigt. Ein Garbage Collector (GC) hilft der Java Virtual Machine (JVM) bei der Speicherverwaltung. In OpenJDK HotSpot VM bildet der GC zusammen mit dem dynamischen Just-in-Time (JIT) Tiered Compiler (Client (C1) + Serverklasse (C2)) und dem Interpreter die Ausführungsmaschine. Es gibt eine ganze Reihe von Optimierungen, die ein dynamischer Compiler für dich durchführen kann. C2 kann z. B. dynamische Verzweigungsvorhersage nutzen und eine Wahrscheinlichkeit ("immer" oder "nie") für genommene (oder nicht genommene) Codeverzweigungen haben. Auch bei der Optimierung von Konstanten, Schleifen, Kopien, Deoptimierungen und so weiter ist C2 hervorragend.

Vertraue dem adaptiven Compiler, aber überprüfe im Zweifelsfall mit "Serviceability", "Observability", Logging und all den anderen Tools, die wir dank unseres reichhaltigen Ökosystems haben.

Was für einen GC wichtig ist, ist die Lebendigkeit/Alter eines Objekts, seine "Popularität", die "Live-Set-Größe" für deine Anwendung, ...

Get 97 Dinge, die jeder Java-Programmierer wissen sollte now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.