Blog Hero Image

So finden Sie 5 Memory Leaks, die auch in Ihrer .NET Anwendung sein könnten.

Dieser Artikel stammt aus dem Jahr 2015. Die Technik darin ist teils Geschichte, der Artikel bleibt als Teil meines Archivs online.

Zum KI-Training  ·  Aktuelle Trainings

So finden Sie 5 Memory Leaks, die auch in Ihrer .NET Anwendung sein könnten.

Auf die Frage “Hätten Sie gerne noch ein paar Memory-Leaks in Ihrer Anwendung?” würden die meisten Kunden vermutlich vehement mit “Nein” antworten. Und das selbst wenn die Leaks kostenfrei wären. Obwohl die wenigsten Anwender also Memory Leaks wünschen, liefern Entwickler sie trotzdem regelmäßig mit ihren Anwendungen aus. Selbstverständlich geschieht dies nicht bewusst. Stattdessen schleicht sich das Leak still und heimlich in die Applikation und entfaltet seine volle Wirkung erst im Produktivbetrieb beim Kunden.

Als .NET Anwendungsentwickler sind wir uns natürlich keiner Schuld bewusst, schließlich gibt es unter .NET dank des Garbage Collectors gar keine Memory Leaks mehr. Zumindest in der Theorie! In der Praxis befinden sich jedoch in relativ vielen Anwendungen Memory Leak  ähnliche Zustände, die zum unkontrollierten Anwuchs des Speicherverbrauchs einer Anwendung führen und im schlimmsten Fall mit einem Absturz enden.

In meinen ersten Jahren auf der .NET Plattform bin ich selbst oft genug in die Memory Leak Falle hereingetappt. Nach anfänglicher Ratlosigkeit arbeitete ich mich mühevoll in windbg ein und rückte so den Memory Leaks auf die Pelle. Mittlerweile habe ich zwar das Werkzeug gewechselt und nutze statt windbg meist den Redgate Ants Memory Profiler, trotzdem analysiere ich weiterhin regelmäßig Memory Leaks unter .NET. Nicht nur meine eigenen, sondern auch die meiner Kunden. Eine Auswahl der fünf häufigsten bzw. gemeinsten Leaks habe ich Ende 2014 in einem Vortrag zusammengefasst, den ich seitdem auf mehreren Konferenzen und User Group Treffen gehalten habe. Als ich den Vortrag vorbereitet habe ging ich davon aus, dass es sich um ein “Randgruppenthema” handelt, dass nur relativ wenige Teilnehmer interessieren wird. Tatsächlich war jedoch das Gegenteil der Fall. Der Memory Leak Vortrag war mein bisher erfolgreichster. Auf jeder Konferenz war der Vortrag so gut besucht, dass zum Teil einige Teilnehmer sogar auf dem Boden sitzen oder stehen mussten.

Eines der persönliches Highlights für mich war es den Vortrag während der C# Days der BASTA Spring 2015 und auch auf der Herbst-BASTA 2015 halten zu dürfen. Die Aufzeichnung des BASTA Spring Vortrags ist mittlerweile online. Der Einfachheit halber habe ich das Video direkt hier im Blog eingebunden.

In dem Video erkläre ich folgendes:

  • Wie funktioniert der .NET Garbage Collector Wie geht man bei der Analyse von Memory Leaks systematisch vor Welche Leaks befinden sich typischerweise in .NET Anwendungen Wie behebt man gefundene Leaks schnell und zuverlässig

Wer also gerne lernen möchte, wie er Memory Leaks in der eigenen Anwendung finden kann, der sollte sich auf jeden Fall einmal das Video ansehen. Der Quellcode des Vortrags befindet sich übrigens online auf *github. Somit kann jeder der möchte gerne selbst auf die Suche gehen. Außerdem unterstütze ich auch sehr gerne bei der Memory Leak Analyse des eigenen Quellcodes.

Über Kommentare, entweder hier im Blog, oder direkt auf Youtube freue ich mich natürlich.

Schwankende Ergebnisse mit KI-Tools im Team?

Ich zeige Entwicklerteams, wie aus Copilot-, Claude- und Codex-Lizenzen ein reproduzierbarer Entwicklungsprozess wird. In ein bis zwei Tagen, remote oder in Präsenz in Bad Breisig.

Zum KI-Training

Ich teste die KI-Tools in echten Projekten. Sie lesen in fünf Minuten, was zählt.

Was sich bei Claude Code, Copilot und den anderen KI-Tools geändert hat und was das für .NET-Teams bedeutet. Dazu Neues zu .NET MAUI und zur nächsten Buchauflage. Kein festes Intervall: Ich schreibe, wenn es etwas Relevantes gibt. Abbestellen jederzeit.

Der Versand erfolgt über Brevo. Mit der Anmeldung stimmen Sie der Verarbeitung Ihrer Daten durch Brevo zu.