Exigences : Récemment, en examinant des connaissances<T> telles que Span et Memory<T>, je pense qu’il y a de nombreux avantages à utiliser ces objets, tels que : un accès direct à la mémoire (et une grande sécurité), une réduction de l’allocation inutile de mémoire (selon la scène, par exemple, l’interception sous-chaîne de conversion de chaînes), la modification des valeurs en mémoire, et l’apprentissage persistant, sans une compréhension approfondie.
System.Span<T> est un nouveau type de valeur dans le cœur .NET. Il prend en chargement une représentation d’une région contiguë de mémoire arbitraire, que cette mémoire soit associée à un objet géré, fournie par du code natif via l’interop, ou dans la pile. Il le fait tout en assurant un accès sécurisé, avec des caractéristiques de performance similaires à celles des tableaux. En utilisation, Span garantit la sécurité de la mémoire et des données avec peu ou pas de surcharge.
Par exemple, si nous utilisons une sous-chaîne pour convertir une chaîne en type int, guid, long, etc., nous n’utiliserons plus le contenu de la chaîne interceptée, mais appeler une sous-chaîne pour retourner une nouvelle chaîne demandera un nouvel espace mémoire.
Tout d’abord, l’outil de benchmarking BenchmarkDotNet est introduit, comme suit :
Le code de test est le suivant :
Les résultats sont les suivants :
Référence:
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
|