inleiding
. Net8-versie, vergeleken met. Net7 is veel veranderd. In dit artikel bekijken we enkele van de soorten prestatieveranderingen, officieel aanbevolen nieuwe typen die gericht zijn op het verbeteren van applicatieprestaties.
Wraparound
1.Systeem.Collecties.Bevroren
Naamruimtes omvatten de verzamelingstypen FrozenDictionary< TKey, TValue> en FrozenSet. Zodra een collectie is aangemaakt, staan deze typen geen wijzigingen toe aan sleutels en waarden. Deze eis maakt snellere leesoperaties mogelijk (bijv. TryGetValue()). Deze typen zijn vooral nuttig voor collecties die bij het eerste gebruik worden gevuld en vervolgens worden behouden voor langdurige dienst, zoals:
2.System.Buffers.IndexOfAnyValues
Het type is bedoeld om doorgegeven te worden aan de methode om de eerste match van een willekeurige waarde in de doorgegeven collectie te vinden. Bijvoorbeeld, String.IndexOfAny(Char[]) zoekt naar de eerste match van elk teken in de gespecificeerde array in de string die het aanroept. NET 8 voegt nieuwe methode-overloads toe, zoals String.IndexOfAny en MemoryExtensions.IndexOfAny, die nieuwe type-instanties accepteren. Wanneer je een instantie van System.Buffers.IndexOfAnyValues aanmaakt, worden alle gegevens die nodig zijn om volgende zoekopdrachten te optimaliseren op dat moment afgeleid, wat betekent dat het werk vooraf wordt gedaan.
3.Systeem.Tekst.ComposietFormaat
Types kunnen worden gebruikt om formaatstrings te optimaliseren die onbekend zijn tijdens compilering (bijvoorbeeld formaatstrings worden geladen uit resourcebestanden). Het kost wat extra tijd in het begin om dingen als strings te parsen, maar dit bespaart elke keer werk dat je het gebruikt moet doen.
4.System.Buffers.IndexOfAnyValues
Het type is bedoeld om doorgegeven te worden aan de methode om de eerste match van een willekeurige waarde in de doorgegeven collectie te vinden. Bijvoorbeeld, String.IndexOfAny(Char[]) zoekt naar de eerste match van elk teken in de gespecificeerde array in de string die het aanroept. NET 8 voegt nieuwe methode-overloads toe, zoals String.IndexOfAny en MemoryExtensions.IndexOfAny, die nieuwe type-instanties accepteren. Wanneer je een instantie van System.Buffers.IndexOfAnyValues aanmaakt, worden alle gegevens die nodig zijn om volgende zoekopdrachten te optimaliseren op dat moment afgeleid, wat betekent dat het werk vooraf wordt gedaan.
5.System.Text.CompositeFormat
Types kunnen worden gebruikt om formaatstrings te optimaliseren die onbekend zijn tijdens compilering (bijvoorbeeld formaatstrings worden geladen uit resourcebestanden). Het kost wat extra tijd in het begin om dingen als strings te parsen, maar dit bespaart elke keer werk dat je het gebruikt moet doen.
6. Systeem.Numeriek en Systeem.Runtime.Intrinsiek
Verbeteringen aan de naamruimtes System.Numerics en System.Runtime.Intrinsics. Vector256, Matrix3x2 en Matrix4x4 verbeteren hardware-versnelling op .NET 8. Vector256 heeft bijvoorbeeld 2xVector128 waar mogelijk opnieuw geïmplementeerd. Hardware-interns annoteren nu met de ConstExpected-eigenschap. Dit zorgt ervoor dat gebruikers weten wanneer de onderliggende hardware constanten nodig heeft en wanneer buitengewone waarden per ongeluk de prestaties kunnen schaden.
Referentie:De hyperlink-login is zichtbaar. Origineel:De hyperlink-login is zichtbaar.
|