Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe información de rendimiento para las asignaciones de matrices de longitud cero.
Causa
La asignación de matrices de longitud cero en .NET puede provocar asignaciones de memoria innecesarias. Estas asignaciones, aunque pequeñas, pueden acumularse y causar problemas de rendimiento, especialmente en aplicaciones con restricciones de memoria o alto rendimiento.
Descripción de la información de rendimiento
Cuando se asigna una matriz de longitud cero, se produce una asignación de memoria que no es necesaria. En lugar de crear una nueva matriz, es más eficaz usar la instancia de matriz vacía asignada estáticamente proporcionada por el método Array.Empty<T>(). Este método devuelve una matriz vacía y almacenada en caché del tipo especificado, lo que evita la sobrecarga de una nueva asignación.
Cómo investigar una advertencia
Haga clic en el vínculo Investigar para ir a la vista de asignación de que muestra la matriz de longitud cero asignada. Al hacer doble clic en la asignación se muestran las rutas de acceso de código en las que se producen las asignaciones. Considere la posibilidad de reducir estas asignaciones mediante la instancia de matriz vacía asignada estáticamente proporcionada por Array.Empty<T>().
A partir de la versión 18.0.0 preview 1 o posterior de Visual Studio, si Copilot está habilitado, verá el
Preguntar a Copilot). Seleccione el botón y Copilot proporciona un análisis detallado de los patrones de asignación y sugiere correcciones de código para optimizar el uso de memoria.
Este es un ejemplo de una asignación de matriz vacía y su resolución:
Violación:
class Example
{
public void Method()
{
var array = new int[0];
}
}
Resolución:
class Example
{
public void Method()
{
var array = Array.Empty<int>();
}
}
Recursos adicionales
Para obtener más información sobre cómo evitar asignaciones de matrices de longitud cero y otros procedimientos recomendados de rendimiento, consulte el siguiente recurso:
CA1825: evitar asignaciones de matriz de longitud cero (análisis de código)
Al seguir estas instrucciones, puede asegurarse de que la aplicación está optimizada para el rendimiento y evita una sobrecarga innecesaria de memoria.