Compartir a través de


DA0010: GetHashCode consume muchos recursos

Identificador de regla

DA0010

Categoría

Uso de .NET Framework

Métodos de generación de perfiles

Muestreo

Memoria de .NET

Mensaje

Las funciones GetHashCode deben ser sencillas y no deben asignar cualquier memoria. Si es posible, reduzca la complejidad de la función de código hash.

Tipo de mensaje

Advertencia

Causa

Las llamadas al método GetHashCode del tipo constituyen una proporción considerable de los datos de generación de perfiles o el método asigna memoria.

Descripción de la regla

Aplicar un algoritmo hash es una técnica para buscar rápidamente un elemento determinado en una colección grande. Dado que las tablas hash pueden ser muy grandes y tener que admitir tasas muy altas de acceso, las tablas hash deberían ser sumamente eficaces. Una implicación de este requisito es que los métodos GetHashCode en el .NET Framework no deberían asignar la memoria. La asignación de memoria incrementa la carga en el recolector de elementos no utilizados y expone el método a posibles retrasos si se hace necesario ejecutar la recolección de elementos no utilizados como resultado de la solicitud de asignación.

Cómo corregir infracciones

Reduzca la complejidad del método.