Kapitel 18. Speicher-Effizienz

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

Wie in Kapitel 7 beschrieben, kann die CLR dank ihres Garbage Collectors (GC) eine automatische Speicherverwaltung durchführen. Das hat seinen Preis: Wenn eine CPU Zeit mit der Speicherbereinigung verbringt, hält sie das von produktiverer Arbeit ab. Auf Laptops und Handys verbraucht der GC Strom aus dem Akku. In einer Cloud-Computing-Umgebung, in der du möglicherweise für die CPU-Zeit nach Verbrauch bezahlst, bedeutet zusätzliche Arbeit für die CPU direkt höhere Kosten. Auf einem Computer mit vielen Kernen kann ein zu langer GC-Prozess den Durchsatz drastisch verringern, weil viele Kerne blockiert werden und auf den Abschluss des GC-Prozesses warten, bevor sie weiterarbeiten können.

In vielen Fällen sind diese Auswirkungen so gering, dass sie keine sichtbaren Probleme verursachen. Wenn bestimmte Programme jedoch stark belastet werden, können die GC-Kosten die Gesamtausführungszeit dominieren. Vor allem, wenn du Code schreibst, der relativ einfache, aber sich stark wiederholende Vorgänge ausführt, kann der GC-Overhead einen erheblichen Einfluss auf den Durchsatz haben.

Um dir ein Beispiel für die Art von Verbesserungen zu geben, die manchmal möglich sind, stießen frühe Versionen des Webserver-Frameworks ASP.NET Core von Microsoft aufgrund des GC-Overheads häufig an harte Grenzen. Damit .NET-Anwendungen diese Grenzen ...

Get Programmierung C# 10 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.