Von Datentypen und Speicherverwaltung 20.04.2017, 00:00 Uhr

Stack, Heap & GC

Ein Blick hinter die Kulissen der Speicherverwaltung von .NET und JavaScript.
Den Speicher eines Computers kann man sich wie ein langes Band vorstellen, das aus vielen Zellen besteht, von denen jede einzelne ein Byte speichern kann. Das Betriebssystem des Computers ist dafür zuständig, dieses Band so in Abschnitte zu unterteilen, dass jeder gestartete Prozess einen eigenen Bereich erhält. Auf diesem Weg können sich die Prozesse nicht gegenseitig stören. Doch wie verwalten Prozesse den ihnen zugewiesenen Bereich? Da Daten nicht alle gleichartig aufgebaut sind, liegt die Frage nahe, ob es je nach Art der Daten unterschiedliche Strategien gibt. Auf der einen Seite stehen sehr einfache Datentypen wie bool oder int, zu deren interner Darstellung wenige Bytes genügen. Dem gegenüber stehen sehr komplexe Datentypen wie zum Beispiel Objekte, die unter Umständen sehr viel Speicher benötigen.
Stack und Heap an den Enden des zugewiesenen Speicherbereiches (Bild 1)

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar