2010-04-22 5 views
7

두 개의 .NET 라이브러리 ("Foo.Bar"및 "Foo.Baz")가 있습니다.
"Foo.Bar"는 자체 포함되어 있지만 "Foo.Baz"는 "Foo.Bar"를 참조합니다..NET ILMerged 어셈블리의 성능

나는 다음을 수행 가정 :

  • 사용 ILMerge는 "Foo1.dll"로 "Foo.Baz.dll"와 "Foo.Bar.dll을"병합 할 수 있습니다.
  • "Foo.Bar"및 "Foo.Baz"의 엔티티를 포함하는 새로운 솔루션을 만들고 (이 소스 코드에 액세스 할 수 있으므로) "Foo2.dll"로 컴파일하십시오.

외부 프로젝트의 기능을 사용할 때 Foo1.dll 및 Foo2.dll의 성능에 차이가 있습니까? 그렇다면이 성능 차이가 얼마나 중요한지, 일회성 (로드 중입니까?) 또는 지속적인 차이입니까? 두 가지 방법 중 다른 장점이나 단점이 있습니까?

답변

3

정확히 같은 IL을 만들지는 못 하겠지만 극도로 가깝고 두 가지 방법의 차이점을 상상할 수 없습니다. ILMerge 방법이 아마도 더 편리하고 유지 보수가 가능하다는 사실 외에도 두 솔루션 모두 동일한 결과를 가져올 것이라고 생각합니다.

+0

정확히 동일한 IL을 생산하지 않는 이유는 무엇입니까? ILMerge가 새로운 일리노이를 방출해야하는 이유는 무엇입니까? –

+0

IL의 대부분은 동일하지만 ILMerge는 일부 변형을 수행합니다. 그 중 일부는 유형 정의 병합과 같이 구성 가능합니다. 그 중 일부는 어셈블리 수준 특성과 관련이 있습니다. 나는 타입 가시성 등을 바꿀 수 있다고 생각한다. – Josh

+0

어떤 것도 어셈블리의 성능에 영향을 미치지 않는다. – Josh

관련 문제