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 für die CPU-Zeit nach Verbrauch bezahlst, bedeutet die zusätzliche Arbeit für die CPU einen direkten Kostenanstieg. 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.
Als das ASP.NET Core-Team von Microsoft daran arbeitete, die Leistung seines Webserver-Frameworks zu verbessern, stieß es in frühen Versionen aufgrund des GC-Overheads häufig an harte Grenzen. Damit .NET-Anwendungen diese Grenzen durchbrechen können, wurden ...
Get C# 8.0 programmieren 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.