Tengo dos bibliotecas .NET: "Foo.Bar" y "Foo.Baz".
"Foo.Bar" es autónomo, mientras que "Foo.Baz" hace referencia a "Foo.Bar".Desempeño de ensamblados .NET ILMerged
Suponiendo que hacer lo siguiente:
- Uso ILMerge para fusionar "Foo.Bar.dll" con "Foo.Baz.dll" en "Foo1.dll".
- Cree una nueva solución que contenga la entiridad de "Foo.Bar" y "Foo.Baz" (ya que tengo acceso a su código fuente), y compile esto en "Foo2.dll".
¿Habrá alguna diferencia en el rendimiento de Foo1.dll y Foo2.dll al usar su funcionalidad de un proyecto externo? De ser así, ¿qué tan significativa es esta diferencia de rendimiento, y es una diferencia única (en carga?) O continua? ¿Hay alguna otra ventaja o desventaja con cualquier enfoque?
¿Por qué no producir exactamente la misma IL? ¿Por qué ILMerge tiene que emitir nueva IL? –
La mayor parte de IL será la misma, pero ILMerge realiza algunas transformaciones. Parte de esto es configurable como fusionar definiciones de tipo. Parte de esto tiene que ver con los atributos de nivel de ensamblaje. Creo que puede cambiar la visibilidad del tipo, etc. – Josh
Ninguno de los cuales debería afectar el rendimiento del ensamblaje, piénselo. – Josh