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.