Skip to Content
Nueva versión 12 disponible 🎉

Rendimiento

El cifrado de valores y matrices acepta un pequeño coste en tiempo de ejecución a cambio de mantener sus constantes y los datos de sus matrices fuera del código descompilado.

  • Descifrado en cada acceso. Cada constante cifrada se obtiene mediante una llamada de descifrado en lugar de cargarse directamente, por lo que leer un valor cuesta más que un simple ldc. En la inmensa mayoría del código esto es imperceptible, pero puede acumularse cuando un bucle de uso intensivo lee constantes cifradas millones de veces.
  • Reconstrucción de la matriz en el primer uso. Una matriz en línea cifrada se reconstruye a partir de sus datos descifrados la primera vez que se inicializa.

Como el coste es proporcional a la frecuencia con que se leen los valores cifrados, aplique el cifrado allí donde protege algo que merece protección, y no a todos los literales del ensamblado. Si un bucle intensivo concreto muestra un coste adicional medible, considere la posibilidad de extraer la constante a una variable fuera del bucle, o de activar el cifrado solo para los tipos de datos que realmente contienen datos confidenciales (consulte Configuración).

Como con cualquier ajuste de protección, ejecute su conjunto de pruebas y, si procede, sus pruebas de rendimiento sobre el ensamblado ofuscado para confirmar que el equilibrio es aceptable para su aplicación.

Last updated on