Skip to Content
Nueva versión 12 disponible 🎉

Rendimiento

El proxy dinámico añade dos tipos de coste, ambos pequeños:

  • Un coste único por cada sitio de llamada con proxy. La primera vez que se invoca un miembro al que se accede mediante proxy, el resolvedor inyectado resuelve el destino y conecta el delegado. Esto ocurre de forma diferida (solo en los sitios de llamada que realmente se alcanzan) y una vez por sitio de llamada. En las aplicaciones que aplican el proxy a un número muy grande de llamadas distintas, esto puede añadir una cantidad pequeña pero medible al tiempo de inicio o de primer uso.
  • Un coste insignificante en régimen estable. Después de la primera llamada, las invocaciones pasan por el delegado en caché. El coste adicional por llamada es del orden de unos pocos nanosegundos y es irrelevante para la gran mayoría del código.

Como el cuerpo del método llamado no cambia, los métodos que hacen un trabajo real no se ven afectados en la práctica. El coste adicional solo se aprecia en métodos extremadamente pequeños invocados en bucles de uso muy intensivo (millones de llamadas). En esos casos, y para mantener rápido el inicio cuando solo una parte del código es sensible, use los Filtros para aplicar el proxy solo a las llamadas que necesitan protección, en lugar de a todo el ensamblado.

Es importante tener en cuenta que, aunque la protección con proxy dinámico aporta una capa adicional de ofuscación, puede tener un ligero impacto en el tiempo de inicio de su aplicación debido a la generación e inicialización de las clases proxy. No obstante, en la mayoría de los casos se considera que la mejora de la seguridad compensa un pequeño impacto en el rendimiento.

Last updated on