Pinned Object Heap (POH)

Eintrag zuletzt aktualisiert am: 03.04.2020


Der Garbage Collector verbessert u.a. den Umgang mit sogenannten an angehefteten Objekten (Pinned Objects), die man in C# mit dem Schlüsselwort "fixed" erstellt (nur in "unsafe"-Programmcodeblöcken erlaubt). Pinned Objects dürfen bei einer Garbage Collection nicht in andere Speicherbereiche verschoben werden. Für die Pinned Objects führt Microsoft in .NET 5.0 Preview 2 eine separate Behandlung bei der Speicherverwaltung ein, indem diese nun in einem eigenen Hauptspeicherbereich (Pinned Objects Heap – POH) verwaltet werden. Die bisherigen Generationen-Heaps (0 bis 2, siehe Fundamentals of garbage collection [https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals]) müssen damit keine Sonderbehandlung für die Pinned Objects mehr durchführen. Bisher schon gab es einen eigenen Heap für große Objekte (Large Object Heap - LOH)