【问题标题】:Performance of .NET ILMerged assemblies.NET ILmerged 程序集的性能
【发布时间】:2010-04-22 06:09:43
【问题描述】:

我有两个 .NET 库:“Foo.Bar”和“Foo.Baz”。
“Foo.Bar”是自包含的,而“Foo.Baz”引用“Foo.Bar”。

假设我执行以下操作:

  • 使用 ILMerge 将“Foo.Bar.dll”与“Foo.Baz.dll”合并到“Foo1.dll”中。
  • 创建一个包含“Foo.Bar”和“Foo.Baz”的整体的新解决方案(因为我可以访问它们的源代码),并将其编译为“Foo2.dll”。

在外部项目中使用 Foo1.dll 和 Foo2.dll 的功能时,它们的性能会有什么不同吗?如果是这样,这种性能差异有多显着,它是一次性的(负载时?)还是持续的差异?这两种方法还有其他优点或缺点吗?

【问题讨论】:

    标签: .net performance assemblies ilmerge


    【解决方案1】:

    我确信它不会产生完全相同的 IL,但它会非常接近,我无法想象这两种方法之间有任何明显的区别。除了 ILMerge 方法可能更方便和可维护之外,我认为这两种解决方案都会产生相同的结果。

    【讨论】:

    • 为什么不能产生完全相同的 IL?为什么 ILMerge 必须发出新的 IL?
    • 大部分 IL 将是相同的,但 ILMerge 确实进行了一些转换。其中一些是可配置的,例如合并类型定义。其中一些与程序集级属性有关。我认为它可以改变类型可见性等。
    • 请注意,这些都不会影响程序集的性能。
    猜你喜欢
    • 2011-03-05
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    相关资源
    最近更新 更多