Krav: For nylig, når jeg har set på viden<T> som Span og Memory<T>, føler jeg, at der er mange fordele ved at bruge sådanne objekter, såsom: direkte adgang til hukommelse (og meget sikker), reduktion af unødvendig hukommelsesallokering (afhængigt af scenen, f.eks. substring-interception af strengkonvertering), ændring af værdier i hukommelsen og stadig læring, ikke den dybdegående forståelse.
System.Span<T> er en ny værditype i .NET-kernen. Den understøtter en repræsentation af et sammenhængende område af vilkårlig hukommelse, uanset om denne hukommelse er tilknyttet et administreret objekt, leveret af native kode via interop, eller befinder sig i stakken. Det gør det, samtidig med at den stadig giver sikker adgang, med ydeevneegenskaber, der ligner arrays. I brug sikrer Span hukommelses- og datasikkerhed med minimal eller ingen overhead.
For eksempel, hvis vi bruger Substring til at konvertere en streng til typen int, guid, long osv., vil vi ikke længere bruge indholdet af den opsnappede streng, men at kalde Substring for at returnere en ny streng vil anmode om ny hukommelsesplads.
Først introduceres benchmarking-værktøjet BenchmarkDotNet, som følger:
Testkoden er som følger:
Resultaterne er som følger:
Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
|