¿Existe alguna diferencia con respecto al rendimiento de los métodos privados, protegidos, públicos e internos en las clases de C#?

StackOverflow https://stackoverflow.com/questions/7384987

Pregunta

¿Hay alguna diferencia con respecto al rendimiento de private, protected, public y internal ¿Métodos en la clase C#?Me interesa si alguno consume más tiempo de procesador o RAM.

¿Fue útil?

Solución

no soy consciente de cualquier diferencia de rendimiento para la invocación normal;Es posible que un acceso más restringido requiera un poco más de trabajo cuando se accede mediante invocación dinámica o reflexión, ya que es posible que la persona que llama deba ser validada con más cuidado.En el caso normal de compilación JIT, el CLR puede validar el acceso solo una vez y luego darlo por sentado.Supongo que es posible que la compilación JIT (y la verificación IL) en sí sean un poco más lentas para un acceso más restrictivo, pero me cuesta creer que sea significativo.

Esto debería absolutamente no ser un factor para determinar qué accesibilidad usar, incluso si de alguna manera hay una pequeña diferencia de rendimiento que desconozco.Si cree que puede lograr un beneficio de rendimiento al hacer que la accesibilidad sea algo distinto a lo "natural" para su diseño, definitivamente debe comparar el caso antes/después; sospecho que será difícil encontrar un Situación del mundo real donde la diferencia se puede medir de forma fiable.

El mismo tipo de consejo se aplica a todo tipo de microoptimización:De todos modos, casi nunca es una buena idea y debería definitivamente sólo puede llevarse a cabo con una medición cuidadosa.

Otros consejos

No habrá una diferencia mensurable en el rendimiento entre los métodos privados, protegidos o públicos.

Si se concentra en la optimización, posiblemente debería intentar hacer que su código de cuello de botella sea más "procedimental" que orientado a objetos.Supondría una pequeña mejora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top