Mögliche Duplizieren:
What is the “cost” of reflection?(Warum) Ist Reflection in .Net so teuer?
Hat jemand eine gute Erklärung für die allgemein anerkannten Mantra haben, dass reflection == bad performance
?
Zum Beispiel, wie teuer ist es, die Eigenschaftensammlung eines Typs zu durchlaufen und alle Eigenschaftswerte aus einer Instanz dieses Typs zu extrahieren, verglichen mit dem direkten Zugriff auf alle Eigenschaften? Eine Größenordnung? Zwei? Wovon hängt es ab? Ist es überhaupt vorhersehbar? Was passiert unter der Haube?
EDIT: Danke für die Antworten bisher. Ich habe mir einige der Links angesehen, die Sie zur Verfügung gestellt haben, und es scheint, dass es eine große Lücke an Schätzungen bezüglich Reflection on Properties im Vergleich zum direkten Zugriff gibt: von 2,5 mal langsamer bis 200 mal langsamer.
Das scheint mir nicht sehr sinnvoll. Einige von Ihnen erwähnten Leistungsverbesserungen in späteren Versionen von .Net. Lassen Sie mich daher meine Frage auf .Net 4.0 beschränken. Hat jemand irgendwelche Benchmarks dafür?
Diese Frage ist ein Versuch, eine gebildete Meinung zu bilden. Wenn ich schon einen hätte, müsste ich nicht fragen. – Manu
@Manu: Großartig, es zu hören :) Ich will dich nicht beschimpfen, ich will dir Munition geben, um dich vor allem zu schützen, was alle anderen vorgeben, besonders wenn sie deine Anforderungen nicht genau kennen habe diese Untersuchung nicht selbst gemacht. Viele Menschen geben diesem Druck nach. –
@Manu: Außerdem gibt es die Standardempfehlung "Profil, dann Optimierung". Wenn Ihre Perfusion das von Ihrer Kundenanforderung abhängige Budget erfüllt, wen kümmert es, welche Implementierung Sie verwenden. –