.NET Entwickler unterliegen häufig dem Irrglauben, dass es unter .NET keine Memory Leaks mehr gibt. In diesem Vortrag erfahren Sie, wie der Garbage Collector arbeitet und sehen im verwiesenen Source Code unter http://github.com/AndreKraemer/MemoryLeakDemo auch entsprechende Beispiele
31. Fazit
•Melden Sie Event Handler auf länger lebende
Objekte ab
•Meiden Sie statische Dictionaries als Cache
•Reduzieren Sie die Anzahl dynamisch generierter
Assemblies durch Caching oder ähnliches
•Implementieren Sie INotifyPropertyChanged wenn
Sie Databinding nutzen
•Blockieren Sie den Finalizer nicht!
32. Homepage
andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer
Vielen Dank!
Blog
Xing
Facebook
Twitter
Google+
32
Vielen Dank an Ben Emmett von Redgate Software für die Unterstützung bei den Folien
Sämtliche Abbildung wurden ordnungsgemäß bei IStockPhoto lizensiert.
33. Meine Dienstleistungen
• Schulungen
• ASP.NET
• Xamarin
• TX Text Control
• Infragistics NetAdvantage
• Team Foundation Server
• Consulting
• Durchführung von Technologieworkshops
• Code- / Architekturreviews
• Analyse von managed Memory Leaks
• Prototypenentwicklung
• Remote Entwickler-Support
• Projektbegleitendes Coaching
• Softwareentwicklung
• Mobile Apps (Windows 8, Windows Phone, Android, iOS)
• Entwicklung von Web-Anwendungen
33
Notes de l'éditeur
Ich habe mir 5 Beispiele aus meiner Praxis herausgesucht, bei denen ich als Berater gerufen wurde. Die werde ich gleich mit Ihnen durchgehen. Ich freue mich, wenn wir das ganze relativ interaktiv gestallten würden, Sie dürfen also gerne mitraten, wenn Sie glauben das Leak im Code entdeckt zu haben.
Demo 1: Event Handler
Demo 2: Static Dictionary als Cache
Demo 3: Dynamic Assemblies
Demo 4: DataBinding
Demo 5: Disposable / Blocking Finazlizer