Tengo pocos métodos globales declarados en clase pública en mi aplicación web ASP.NET.Static Vs Instance Method Performance C#
tengo costumbre de declarar todos los métodos globales en clase pública en el siguiente formato
public static string MethodName(parameters) { }
Quiero saber cómo impactaría sobre el punto de vista del rendimiento?
- ¿Cuál es mejor? ¿Método estático o no estático?
- ¿Por qué es mejor?
http://bytes.com/topic/c-sharp/answers/231701-static-vs-non-static-function-performance#post947244 estados:
porque, métodos estáticos están utilizando cerraduras ser Hilo de seguridad. El siempre hace internamente un Monitor.Entrar() y Monitor.exit() para asegurar Seguridad de subprocesos.
Mientras que http://dotnetperls.com/static-method estados:
métodos estáticos son normalmente más rápido para invocar sobre la pila de llamadas que métodos de instancia. Hay varias razones para esto en el lenguaje de programación C# . Los métodos de instancia realmente usan el puntero de instancia 'this' como el primer parámetro, por lo que un método de instancia tendrá siempre con esa sobrecarga. Los métodos de instancia también se implementan con la instrucción callvirt en el lenguaje intermedio, que impone una ligera sobrecarga . Tenga en cuenta que es poco probable que cambiar sus métodos a métodos estáticos ayude mucho en objetivos ambiciosos de rendimiento, pero puede ayudar un poco y posiblemente conducir a nuevas reducciones.
No estoy seguro de cuál usar?
¿Leyó al final de ese primer enlace? Se vuelve bastante claro, incluso dentro del hilo, que la afirmación sobre el bloqueo automático es falsa. –