Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 2 Min.

Mit Span die Performance steigern

Softwareentwickler Bohdan Stupak gibt in einem CodeProject-Artikel einen Überblick über die C#-Funktion Span und liefert ein Beispiel dafür, wie sie die vorhandene Codebasis verbessern kann.
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.

Neueste Beiträge

DDC hakt nach: Bringt Blazor 10 Ordnung ins Chaos?
Mit Blazor lässt sich Code in C# schreiben, der im Web-Frontend ausgeführt wird. Die Version 10 soll Ordnung in das gewachsene Framework bringen. Dr. Holger Schwichtenberg verrät im Interview, was sich getan hat.
3 Minuten
3. Nov 2025
Chunks mit Köpfchen - KI für KMU, Teil 1
Wie trenne ich Textinformationen in sinnvolle Segmente?
7 Minuten
Hierarchische Testdata-Builder - Testdata-Builder, Teil 1
Lesbare Tests bei tiefen Objekthierarchien mit dem Collection-Builder-Pattern.
4 Minuten
Miscellaneous

Das könnte Dich auch interessieren

Benchmark im Unit-Test-Stil - Best of NuGet, Teil 4
NuGet-Pakete können das Leben des .NET-Entwicklers sogar um neue Werkzeuge erweitern, die sich auf den Entwicklungsworkflow (und nicht den bearbeiteten Code) auswirken. Mit BenchmarkDotNet steht ein Musterbeispiel dieses Konzepts zur Verfügung, das die Überprüfung der Performance von Code aller Arten ermöglicht.
7 Minuten
16. Okt 2025
Attraktives GUI mit Spectre.Console - Best of NuGet, Teil 6
Mit der Bibliotheksfamilie Spectre.Console steht ein neues Produkt ante portas, das die Realisierung von visuell ansprechenden Kommandozeileninterfaces zu erleichtern sucht.
7 Minuten
29. Okt 2025
Loggingdaten-Einlaufstelle mit Komfortfunktionen - Best of NuGet, Teil 5
Die in Android implementierte Logging-Funktion ist ein leistungsfähiges Beispiel für moderne Logging-Systeme. Mit Serilog steht ein ähnliches System für .NET-Applikationen zur Verfügung, das allerdings einige weit über das große Vorbild hinausgehende Funktionen offeriert.
6 Minuten
22. Okt 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige