2009-12-13 16 views
6

He tomado una aplicación que se desarrolló en Visual Studio 2008 y usé varias bibliotecas de Office a través de COM Interop. Comencé algunas pruebas de desarrollo conceptual usando la palabra clave dinámica y Visual Studio 2010. Descubrí que realizar las mismas tareas es de 5 a 10 veces más lento usando la dinámica que la "vieja" forma. ¿Alguien más ha experimentado este nivel de degradación del rendimiento? ¿Esto es conocido o debería encontrar una manera de informar esto?C# 4.0 rendimiento dinámico de interoperabilidad de Office

Respuesta

1

Sí, existe un conocido golpe con la palabra clave dynamic. El motivo es que debe encasillar los valores en el tipo object y luego utilizar el DLR (una sola vez) para compilarlo y evaluarlo. Esto tomará más tiempo en el procesador que si se conociera el tipo. Puede ver la respuesta aceptada en este question para obtener una descripción más detallada.

Finalmente, en su caso, sería aún peor porque ya es un objeto COM, por lo que encadenar y desempaquetar ese objeto sobre la sobrecarga de COM será exagerado.

Cuestiones relacionadas