Requisitos: Recientemente, al analizar conocimientos<T> como Span y Memory<T>, siento que hay muchas ventajas en usar estos objetos, como: acceso directo a la memoria (y muy seguro), reducción de asignaciones innecesarias de memoria (dependiendo de la escena, por ejemplo, intercepción de substring de conversión de cadenas), modificación de valores en memoria y aún así aprender, sin esa comprensión profunda.
System.Span<T> es un nuevo tipo de valor en el núcleo .NET. Soporta una representación de una región contigua de memoria arbitraria, ya sea que esa memoria esté asociada a un objeto gestionado, proporcionada por código nativo mediante interoperabilidad, o esté en la pila. Lo hace sin dejar de ofrecer acceso seguro, con características de rendimiento similares a las de los arrays. En uso, Span garantiza la seguridad de la memoria y los datos con poca o ninguna sobrecarga.
Por ejemplo, si usamos Substring para convertir una cadena y que sea tipo int, guid, long, etc., ya no usaremos el contenido interceptado de la cadena, pero llamar a Substring para devolver una nueva cadena solicitará nuevo espacio de memoria.
Primero, se introduce la herramienta de benchmarking BenchmarkDotNet, de la siguiente manera:
El código de prueba es el siguiente:
Los resultados son los siguientes:
Referencia:
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
|