prefacio
. Versión Net8, comparada con. Net7 ha cambiado mucho. En este artículo, echemos un vistazo a algunos de sus tipos de cambios en el rendimiento, nuevos tipos oficialmente recomendados para mejorar el rendimiento de las aplicaciones.
Envolvente
1. Sistema.Colecciones.Congelado
Los espacios de nombres incluyen los tipos de colección FrozenDictionary< TKey, TValue> y FrozenSet. Una vez creada una colección, estos tipos no permiten ningún cambio en las claves y valores. Este requisito permite operaciones de lectura más rápidas (por ejemplo, TryGetValue()). Estos tipos son especialmente útiles para colecciones que se poblan al principio y luego se conservan para un servicio a largo plazo, como:
2.System.Buffers.IndexOfAnyValues
El tipo está destinado a pasarse al método de encontrar la primera coincidencia de cualquier valor en la colección pasada. Por ejemplo, String.IndexOfAny(Char[]) busca la primera coincidencia de cualquier carácter en el array especificado en la cadena que lo llama. NET 8 añade nuevas sobrecargas de métodos, como String.IndexOfAny y MemoryExtensions.IndexOfAny, que aceptan nuevas instancias de tipos. Cuando creas una instancia de System.Buffers.IndexOfAnyValues, todos los datos necesarios para optimizar búsquedas posteriores se obtendrán en ese momento, lo que significa que el trabajo se realiza de antemano.
3. FormatoComposito.Texto.Sistema.Compuesto
Los tipos pueden usarse para optimizar cadenas de formato que son desconocidas en tiempo de compilación (por ejemplo, las cadenas de formato se cargan desde archivos de recursos). Al principio se necesita algo de tiempo extra para hacer cosas como analizar cadenas, pero esto ahorra trabajo cada vez que lo usas.
4.System.Buffers.IndexOfAnyValues
El tipo está destinado a pasarse al método de encontrar la primera coincidencia de cualquier valor en la colección pasada. Por ejemplo, String.IndexOfAny(Char[]) busca la primera coincidencia de cualquier carácter en el array especificado en la cadena que lo llama. NET 8 añade nuevas sobrecargas de métodos, como String.IndexOfAny y MemoryExtensions.IndexOfAny, que aceptan nuevas instancias de tipos. Cuando creas una instancia de System.Buffers.IndexOfAnyValues, todos los datos necesarios para optimizar búsquedas posteriores se obtendrán en ese momento, lo que significa que el trabajo se realiza de antemano.
5.System.Text.CompositeFormat
Los tipos pueden usarse para optimizar cadenas de formato que son desconocidas en tiempo de compilación (por ejemplo, las cadenas de formato se cargan desde archivos de recursos). Al principio se necesita algo de tiempo extra para hacer cosas como analizar cadenas, pero esto ahorra trabajo cada vez que lo usas.
6. System.Numerics y System.Runtime.Intrinsics
Mejoras en los espacios de nombres System.Numerics y System.Runtime.Intrinsics. Vector256, Matrix3x2 y Matrix4x4 mejoran la aceleración por hardware en .NET 8. Por ejemplo, Vector256 ha reimplementado 2xVector128 siempre que ha sido posible. Los internos del hardware ahora se anotan usando la propiedad ConstExpected. Esto garantiza que los usuarios sepan cuándo el hardware subyacente necesita constantes y cuándo valores extraordinarios pueden dañar accidentalmente el rendimiento.
Referencia:El inicio de sesión del hipervínculo es visible. Texto original en:El inicio de sesión del hipervínculo es visible.
|