Kapitel 29. Speicherbereinigung ist dein Freund

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

Holly Cummins

Die arme alte Speicherbereinigung. Einer der unbesungenen Helden von Java, oft getadelt, selten gelobt. Bevor Java die Speicherbereinigung zum Standard machte, hatten die Programmierer/innen kaum eine andere Wahl, als den gesamten Speicher, den sie zugewiesen hatten, von Hand zu verfolgen und ihn wieder freizugeben, sobald er nicht mehr gebraucht wurde. Das ist schwierig. Selbst wenn man diszipliniert ist, ist die manuelle Freigabe eine häufige Ursache für Speicherlecks (wenn zu spät) und Abstürze (wenn zu früh).

Java GC (Speicherbereinigung) wird oft als notwendiger Kostenfaktor angesehen, und "die in der GC verbrachte Zeit reduzieren" ist eine gängige Leistungsempfehlung. Die moderne Speicherbereinigung kann jedoch schneller sein als malloc/free, und die in der GC verbrachte Zeit kann alles beschleunigen. Warum? Garbage Collectors tun mehr als nur Speicher freizugeben: Sie kümmern sich auch um die Zuweisung von Speicher und die Anordnung von Objekten im Speicher. Ein guter Algorithmus für die Speicherverwaltung kann die Zuteilung effizient gestalten, indem er die Fragmentierung und den Konkurrenzkampf reduziert. Außerdem kann er den Durchsatz erhöhen und die Antwortzeiten senken, indem ...

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.