5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater.

Slides:



Advertisements
Ähnliche Präsentationen
DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.
Advertisements

Objektrelationales Mapping mit JPA
Garbage Collection Maik Theisen Betreuer: Guido Tack
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Was steht hier eigentlich in den Räumen rum?
Ingo Rammer Production Debugging Ingo Rammer
COMPUTER-GRUNDLAGEN Theoretischer Teil.
1 Teil 2 Einblicke in Exchange 2003 (Basis Beta 2)
Java Garbage Collection Angelika Kusel, Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.
Eigene persönliche Website registrieren Ihr eigener Platz im Internet – Ich, wir und unsere Erlebnisse im Web.
© Zühlke 2012 Romano Roth & Oliver Brack iOS, Android, WP7... Alle nativ auf einen Streich! Romano Roth und Oliver Brack 24. September 2012 Folie 1.
Garbage Collection unter .NET
Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
C Tutorium – Memory Management – Knut Stolze. 2 Agenda Einführung in die Speicherverwaltung Stack vs. Heap Malloc Free Sizeof Tipps/Hinweise.
© 2016 TravelTainment Einführung in die Garbage Collection Seminarvortrag Lars Frauenrath 1.
ASP.NET Core 1.0 Das neue Web Framework von Microsoft.
Einführung in Web- und Data-Science Grundlagen der Stochastik
gemeinsam.innovativ.nachhaltig.
3 Elektrochemische Wandler
Stichwortverzeichnis
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Industrie 4.0 für die Ausbildung 4.0
Wissensmanagement im Zeitalter von Digitaler Transformation
Pflege & Finanzierung 01. Juni 2017 Dr. Sonja Unteregger
Rosebrock: Geometrische Gruppen
Aktuelle Themen aus dem KVJS-Landesjugendamt Referat 44
Frauen- Männerriegen KONFERENZ
Schulung für Microsoft® Office SharePoint® 2007
Mathematik 11 Analytische Geomerie.
Langzeitbelichtung Ein Zugang zur Kinematik in Klassenstufe 7/8
am 09. September 2013 in Rostock
„Status cw-linac“ Motivation Timeline and status Testing of components
Vorlesung Wasserwirtschaft & Hydrologie I
Mathematik 12.
Algorithmen und Datenstrukturen
Slađana Dmitrović 8. Klasse
traduzione in italiano
Mikroökonomie 1 Tausch
Vorlesungseinheit 6 – Prüfung von Zusammenschlüssen auf ihre Vereinbarkeit mit dem Gemeinsamen Markt (Art. 2 FKVO)
Metrik Sondermaschinenbau e. K.

Analyse des Energie-Autarkiegrades unterschiedlich großer Bilanzräume mittels integrierter Energiesystemmodellierung Institut für Energiewirtschaft und.
JAHRESABSCHLUSS 2016 REGION NORDEN
„Die richtige Fährte legen“ – zur Bedeutung der Fachkompetenz von MathematiklehrerInnen in der Sekundarstufe 1 Franz Pauer Institut für Fachdidaktik und.
2. Dynamik Zur vollständigen Beschreibung und Erklärung von Bewegungen müssen die Ursachen für diese Bewegungen (Kräfte, Drehmomente) und die Eigenschaften.
Evaluation & Forschungsstrategien
Vorlesung Wasserwirtschaft & Hydrologie I
Preprocessing Ein wenig Theorie der astronomischen Bildvorverarbeitung. „Es gibt nichts Praktischeres als eine gute Theorie.“ (D.Hilbert, I.Kant, K. Lewin)
Preprocessing Teil 2 Ein wenig Theorie der astronomischen Bildvorverarbeitung. „Es gibt nichts Praktischeres als eine gute Theorie.“ (D.Hilbert, I.Kant,
Bekannte Formeln aus der Mathematik
Neue Verfahren zur Messung der Fließeigenschafften von Frischbeton
Winkel B A U S T E L L E Die einzelnen Bausteine entstehen nach einander und sind noch nicht sinnvoll geordnet!
Evaluation & Forschungsstrategien
Geschichte der Quantentheorie
Algorithmen und Datenstrukturen
aus dem Böge-Aufgabenbuch
Vorlesung Wasserwirtschaft & Hydrologie II
„Controlled Foreign Company“ (CFC) - Regelungen
Strecken des klassifizierten Straßennetzes
<angestrebtes Amt> - <Name> (1)
Michael Schart Keio Universität Tokio/Yokohama
Herzlich willkommen! St. Johann, Juli 2017
Lernentwicklungsgespräch
Integrierte Projekte 2017/2018
Mikroelektronische und optische Bauelemente
Slavische Sprachen für (Computer-) Linguisten
 Präsentation transkript:

5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater

Danke, dass Sie alle gekommen sind!

Ich habe bereits beim Titel meiner Session gelogen!

5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater

Klassisches Memory Leak int *array = malloc(sizeof(int) * 100); memset(array,0,sizeof(int) * 100); // use the array // free(array) // ups, vergessen

Klassisches Memory Leak int *array = malloc(sizeof(int) * 100); memset(array,0,sizeof(int) * 100); // use the array // free(array) // ups, vergessen

Bild: © iStock.com/matt_benoit

Bild: © iStock.com/eric1513

Wie funktioniert eigentlich der Garbage Collector? * Darstellung nicht 100 % korrekt, dafür aber verständlich ;-)

Der CLR garbage collector (GC) ist ein “almost-concurrent, parallel, compacting, mark-and-sweep, generational, tracing GC”

?

Object reference Stack Heap Mark: Lebende Objekte Identifizieren Ausgehend von einer Wurzel Statische Variable Lokale Variable Finalization Queue

Object reference Stack Heap Mark: Lebende Objekte Identifizieren

Object reference Stack Heap Sweep: Tote Objekte freigeben

Object reference Stack Heap Compact: Objekte zusammen führen

Mark – Sweep – Compact ist performancelastig

Gen 0Gen 1Gen 2 Generational Garbage Collection (Gen 0 Collection: Start)

Gen 0Gen 1Gen 2 Generational Garbage Collection (Gen 0 Collection: Ende)

Gen 0Gen 1Gen 2 Generational Garbage Collection (Next Gen 0 Collection: Start)

Gen 0Gen 1Gen 2 Generational Garbage Collection (Next Gen 0 Collection: Ende)

Gen 0Gen 1Gen 2 Generational Garbage Collection (Gen 1 Collection: Start)

Gen 0Gen 1Gen 2 Generational Garbage Collection (Next Gen 0 Collection: Start)

Gen 0Gen 1Gen 2 Generational Garbage Collection (Next Gen 0 Collection: Ende)

Warum geht trotzdem noch was schief?

a) Weil Ihr Kollege was falsch gemacht hat Bild: © iStock.com/NinaMalyna

b) Weil Microsoft was falsch gemacht hat Bild: © iStock.com/ThomasTroy

Wie finden wir unser Leak?

Besser: Ein Memory Profiler

Demo Memoy Leaks unter.NET finden Source Code unter

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!

Homepage | | | Vielen Dank! Blog Xing Facebook Twitter Google+ 32 Vielen Dank an Ben Emmett von Redgate Software für die Unterstützung bei den FolienBen Emmett Redgate Software Sämtliche Abbildung wurden ordnungsgemäß bei IStockPhoto lizensiert.

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