CSharp 02.06.2020, 10:14 Uhr

Mit Span<T> die Performance steigern

Softwareentwickler Bohdan Stupak gibt in einem CodeProject-Artikel einen Überblick über die C#-Funktion Span<T> und liefert ein Beispiel dafür, wie sie die vorhandene Codebasis verbessern kann.
(Quelle: Microsoft.com)
Der Erfahrung von Entwickler Stupack nach besteht die wichtigste Maßnahme zur Verbesserung der Leistung einer Anwendung darin, die Anzahl und Dauer der IO-Calls zu reduzieren. Um das zu erreichen nutzen Entwickler häufig Speicher auf dem Stack. Für die Allokation von Speicher auf Stack werden Werttypen oder der Stackalloc-Operator in Kombination mit nicht verwaltetem Speicher verwendet.
Die zweite Option Span<T> wird von Entwicklern nur selten verwendet, da das API für den Zugriff auf nicht verwalteten Speicher recht ausführlich ist. Span<T> ist eine Familie von Werttypen, die seit Version 7.2 in C# enthalten ist und ermöglicht Entwicklern auf bequemere Weise mit zusammenhängenden Speicherbereichen zu arbeiten und dabei die Speicher- und Typsicherheit zu gewährleisten.
Span<T> bietet eine sichere und einfach zu handhabende Alternative zu Stackallock, mit der sich Leistungsverbesserungen leicht erzielen lassen. Allerdings ist der Gewinn bei einzelnen Anwendung des Konstrukts Span relativ gering. Bei konsequenter Anwendung ergibt sich allerdings ein nennenswerter Vorteil, sagt Bohdan Stupak. In der Codebasis von .NET Core 3.0 ist Span weit verbreitet und mitverantwortlich für die Tempogewinne, die Microsoft mit dieser Version erzeilen konnten.
Weitere Informationen zum Thema sowie die Beispiele und Performance-Tests von Bohdan Stupak finden Sie in seinem CodeProjekt-Artikel auf dieser Seite. Microsofts Dokumentation zu Span<T> finden Sie auf dieser Seite.


Das könnte Sie auch interessieren