Vorwort
. Net8-Version im Vergleich dazu. Net7 hat sich stark verändert. In diesem Artikel werfen wir einen Blick auf einige der Arten von Leistungsänderungen, offiziell empfohlene neue Typen, die darauf abzielen, die Anwendungsleistung zu verbessern.
Bildumlauf
1.System.Sammlungen.Gefroren
Namensräume umfassen die Sammlungstypen FrozenDictionary< TKey, TValue> und FrozenSet. Sobald eine Sammlung erstellt wurde, erlauben diese Typen keine Änderungen an Schlüsseln und Werten. Diese Anforderung ermöglicht schnellere Leseoperationen (z. B. TryGetValue()). Diese Typen sind besonders nützlich für Sammlungen, die bei der ersten Nutzung besetzt und dann für den langfristigen Einsatz erhalten bleiben, wie zum Beispiel:
2.System.Buffers.IndexOfAnyValues
Der Typ ist dafür gedacht, an die Methode weitergegeben zu werden, bei der der erste Übereinstimmung eines beliebigen Wertes in der übergebenen Sammlung gefunden wird. Zum Beispiel sucht String.IndexOfAny(Char[]) nach dem ersten Treffer eines beliebigen Zeichens im angegebenen Array in der Zeichenkette, die es aufruft. NET 8 fügt neue Methodenüberlastungen hinzu, wie String.IndexOfAny und MemoryExtensions.IndexOfAny, die neue Typinstanzen akzeptieren. Wenn Sie eine Instanz von System.Buffers.IndexOfAnyValues erstellen, werden alle Daten, die zur Optimierung nachfolgender Suchanfragen benötigt werden, zu diesem Zeitpunkt abgeleitet, was bedeutet, dass die Arbeit im Voraus erledigt ist.
3. System.Text.CompositeFormat
Typen können verwendet werden, um Formatstrings zu optimieren, die zur Kompilierungszeit unbekannt sind (z. B. werden Formatstrings aus Ressourcendateien geladen). Es kostet etwas mehr Zeit, um Strings zu parsen, aber das spart jedes Mal Arbeit, wenn man es benutzt.
4.System.Buffers.IndexOfAnyValues
Der Typ ist dafür gedacht, an die Methode weitergegeben zu werden, bei der der erste Übereinstimmung eines beliebigen Wertes in der übergebenen Sammlung gefunden wird. Zum Beispiel sucht String.IndexOfAny(Char[]) nach dem ersten Treffer eines beliebigen Zeichens im angegebenen Array in der Zeichenkette, die es aufruft. NET 8 fügt neue Methodenüberlastungen hinzu, wie String.IndexOfAny und MemoryExtensions.IndexOfAny, die neue Typinstanzen akzeptieren. Wenn Sie eine Instanz von System.Buffers.IndexOfAnyValues erstellen, werden alle Daten, die zur Optimierung nachfolgender Suchanfragen benötigt werden, zu diesem Zeitpunkt abgeleitet, was bedeutet, dass die Arbeit im Voraus erledigt ist.
5.System.Text.CompositeFormat
Typen können verwendet werden, um Formatstrings zu optimieren, die zur Kompilierungszeit unbekannt sind (z. B. werden Formatstrings aus Ressourcendateien geladen). Es kostet etwas mehr Zeit, um Strings zu parsen, aber das spart jedes Mal Arbeit, wenn man es benutzt.
6. System.Numerik und System.Laufzeit.Intrinsik
Verbesserungen der System.Numerics- und System.Runtime.Intrinsics-Namensräume. Vector256, Matrix3x2 und Matrix4x4 verbessern die Hardwarebeschleunigung auf .NET 8. Zum Beispiel hat Vector256, wo möglich, 2xVector128 neu implementiert. Hardware-Interna annotieren nun mit der Eigenschaft ConstExpected. Dies stellt sicher, dass Nutzer wissen, wann die zugrunde liegende Hardware Konstanten benötigt und wann außergewöhnliche Werte versehentlich die Leistung beeinträchtigen können.
Referenz:Der Hyperlink-Login ist sichtbar. Original:Der Hyperlink-Login ist sichtbar.
|