Frage

Wie viel wird es für meine Programme Leistung kosten, wenn i Extension Methoden, um es hinzuzufügen?
Wird es funktionieren langsamer oder lädt langsamer?
Danke.

War es hilfreich?

Lösung

  

Wie viel wird es für meine Programme kosten   Leistung, wenn i Extension Methoden hinzufügen   es? Wird es langsamer arbeiten oder kann   lädt langsamer?

Es wird keine Leistungseinbußen sein. Erweiterungsmethoden sind wirklich statische Methoden.

Andere Tipps

eine Erweiterungsmethode ist nur syntaktischer Zucker zu einer statischen Methode angewandt.

In der Theorie eine statische Methode ist schneller als eine nicht-virtuelle Instanz-Methode (keine Notwendigkeit für null this zu überprüfen), die wiederum schneller als eine virtuelle Instanz-Methode (keine Notwendigkeit für die Implementierung Aufruf aufzublicken).

In der Theorie auch Optimierungen könnte loswerden dieser Unterschiede bekommen. Es ist auch in Bezug auf statische hoch genug, wenn es um Erweiterungsmethoden kommt, da das Objekt wahrscheinlich in einer solchen Art und Weise behandelt werden, wird eine Null-Check erfordert sowieso (ob explizit oder implizit auf die Möglichkeiten, es verwendet wird).

In der Praxis sind die Chancen, dass das, was die Erweiterung Methode viel kostet haben, viel mehr Einfluss, dass, ob sie die Erweiterung oder Instanz.

I Leistung schnell getestet dies einiger ganzzahlige Erweiterungsmethoden in einer wirklich langen Laufschleife und festgestellt, dass in den Fällen I getestet, war die Leistung im Allgemeinen identisch. Beim Debuggen oder nicht optimierten Baugruppen ausgeführt wird, Erweiterungsmethoden etwa doppelt so langsam wie meine Steuer Fällen lief, das macht Sinn, weil der Debugger diese Methoden nicht inline und hat den Überblick über die Aufrufliste zu halten, etc.

Also, in einer Baugruppe zur Veröffentlichung bereit, keine Leistungseinbuße.

Es wird sicherlich nicht langsamer geladen werden, wie ein Programm Laden auf den Ausführungspfade in dem Programm nicht abhängig ist.

Wie bei langsamer laufen? Nur die für die Erweiterung Methode genommen Zeitmessung und die Nicht-Extension-Methode für bestimmte zeigen. Ich vermute, dass der Unterschied nicht signifikant sein wird, auch wenn es tatsächlich messbar ist.

Die wichtige Überlegung sollte immer „funktioniert die Erweiterung Methode meinen Code übersichtlicher und einfacher zu verstehen und zu pflegen machen“.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top