2009-12-13 6 views
6

Ich habe eine Anwendung, die in Visual Studio 2008 entwickelt wurde und verschiedene Office-Bibliotheken über COM Interop verwendet. Ich begann eine Proof-of-Concept-Entwicklung mit dem Dynamic-Schlüsselwort und Visual Studio 2010. Ich fand, dass das Ausführen der gleichen Aufgaben etwa 5-10 mal langsamer ist, wenn man dynamischer als die "alte" Methode verwendet. Hat noch jemand diese Leistungsminderung erlebt? Ist das bekannt oder soll ich einen Weg finden dies zu melden?C# 4.0 dynamische Office Interop-Leistung

Antwort

1

Ja, es gibt eine bekannte Leistung Hit mit dem Schlüssel dynamic. Der Grund dafür ist, dass es die Werte in den Typ object boxen und dann den DLR (einmal) verwenden muss, um es zu kompilieren und auszuwerten. Dies erfordert mehr Zeit auf dem Prozessor, als wenn der Typ bekannt wäre. Sie können die akzeptierte Antwort auf dieser question für eine erweiterte Beschreibung sehen.

Schließlich wäre es in Ihrem Fall noch schlimmer, weil es bereits ein COM-Objekt ist, so dass das Boxen und Unboxing dieses Objekts auf dem COM-Overhead übertrieben wird.