Statische Vs-Instanz-Methode Performance C#

Ich habe einige global deklarierten Methoden in der öffentlichkeit in meiner Klasse ASP.NET web-Anwendung.

Ich habe die Angewohnheit, deklarieren Sie alle globalen Methoden in der public-Klasse im folgenden format

public static string MethodName(parameters) { }

Möchte ich wissen, wie wäre es Auswirkungen auf die performance-Sicht?

  1. Welches ist besser? Statische Methode oder Nicht-Statische Methode?
  2. Grund, warum es besser ist?

http://bytes.com/topic/c-sharp/answers/231701-static-vs-non-static-function-performance#post947244 Staaten:

weil statische Methoden werden mit sperren werden, um Thread-sicher. Die immer
machen intern einen Monitor.Geben Sie() und Monitor.exit (), um sicherzustellen,
Thread-Sicherheit.

Während http://dotnetperls.com/static-method Staaten:

statische Methoden sind normalerweise schneller aufrufen auf den call-stack als
Instanz-Methoden. Es gibt mehrere Gründe für diese in C#
Programmiersprache. Instanz-Methoden nutzen 'dieser'
Instanz-Zeiger als ersten parameter, so wird eine Instanz-Methode
immer dieser Aufwand. Instanz-Methoden sind auch implementiert
der callvirt-Anweisung in die intermediate language, die erlegt eine
leichte overhead. Bitte beachten Sie, dass ändern Sie Ihre Methoden, um statischen
Methoden ist unwahrscheinlich, um zu helfen viel auf ehrgeizige Ziele, aber
es kann helfen, ein kleines bisschen und möglicherweise führen zu weiteren Kürzungen.

Ich bin etwas verwirrt, die man zu nutzen?

  • Hast du gelesen, um das Ende des ersten link? Es wird Recht deutlich, sogar innerhalb des thread, dass die Aussage über die automatische Verriegelung ist falsch.
InformationsquelleAutor dotnetguts | 2010-06-10
Schreibe einen Kommentar