Objektspeicher-Overhead in .NET
Beim Umgang mit Objekten im .NET Framework ist es wichtig, die damit verbundenen Speicheranforderungen zu verstehen . Über den Speicherplatz für die Eigenschaften und Felder eines Objekts hinaus gibt es einen zusätzlichen Overhead pro Objekt, der durch die internen Abläufe von .NET entsteht.
Dieser Overhead umfasst den Speicher, der für Elemente wie Objektheader erforderlich ist, die Informationen wie z B. den Typ des Objekts, die Zuordnungsgröße und Verweise auf den Garbage Collector. Die Bestimmung des genauen Speicher-Overheads hängt von der spezifischen .NET-Implementierung ab.
Overheads in verschiedenen Implementierungen
Für Microsoft .NET CLR v4:
Mindestobjektgrößen
Während der Overhead je nach Implementierung variiert, gibt es Mindestgrößen, unter die Objekte nicht gehen dürfen. Diese Größen sind:
Trotz des technischen Overheads von 8 oder 16 Bytes können Objekte Speichern Sie 4 oder 8 Bytes tatsächlicher Daten, bevor zusätzlicher Speicher zugewiesen wird. Dies stellt effektiv einen „freien“ Pufferspeicher für kleine Datenelemente bereit.
Weitere Informationen zu den Besonderheiten der Objektspeicherzuweisung in .NET finden Sie im Blogbeitrag „Von Speicher und Zeichenfolgen.“
Das obige ist der detaillierte Inhalt vonWas ist der Objektspeicher-Overhead in .NET und wie variiert er je nach Implementierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!