Start Debugging

Tag: memory

4 Beiträge

Was ist Span<T> in C#, und wann macht es Ihren Code wirklich schneller?
Span<T> ist ein nur auf dem Stack lebender ref struct, der auf Speicher zeigt, den Sie bereits besitzen, also keine eigene Allokation hat. Es beschleunigt Code in genau drei Situationen: einen Heap-Puffer durch stackalloc ersetzen, ohne Kopieren zerteilen und enge Schleifen, in denen der JIT die Bereichsprüfungen entfernt. Überall sonst ändert es nichts, und über ein await hinweg kompiliert es nicht.
List<T> vs Span<T> vs ReadOnlySpan<T> in C#: wann welcher Typ
List<T> ist eine wachsende Heap-Sammlung; Span<T> und ReadOnlySpan<T> sind reine Stack-Sichten auf Speicher, den Sie bereits besitzen. Verwenden Sie List<T> für alles, was Sie speichern, aus async zurückgeben oder wachsen lassen; Span<T> für eine veränderliche, allokationsfreie Sicht in einer synchronen Methode; ReadOnlySpan<T> für schreibgeschütztes Parsen von Strings, u8-Literalen und Slices.