2010-04-22 36 views
7

Tôi có hai thư viện .NET: "Foo.Bar" và "Foo.Baz".
"Foo.Bar" là khép kín, trong khi "Foo.Baz" tham chiếu "Foo.Bar".Hiệu suất của các hội đồng .NET ILMerged

Giả sử tôi thực hiện như sau:

  • Sử dụng ILMerge sáp nhập "Foo.Bar.dll" với "Foo.Baz.dll" vào "Foo1.dll".
  • Tạo một giải pháp mới có chứa toàn bộ cả "Foo.Bar" và "Foo.Baz" (vì tôi có quyền truy cập vào mã nguồn của chúng) và biên dịch thành "Foo2.dll".

Có sự khác biệt nào về hiệu suất của Foo1.dll và Foo2.dll khi sử dụng chức năng của chúng từ dự án bên ngoài không? Nếu vậy, mức chênh lệch hiệu suất này có ý nghĩa như thế nào, và nó có phải là một lần một lần (trên tải?) Hoặc sự khác biệt liên tục? Có bất kỳ lợi thế hay bất lợi nào khác với một trong hai cách tiếp cận?

Trả lời

3

Tôi chắc chắn nó sẽ không sản xuất chính xác cùng một IL, nhưng nó sẽ là rất gần và tôi không thể tưởng tượng bất kỳ sự khác biệt đáng kể giữa hai phương pháp. Khác với thực tế là phương pháp ILMerge có lẽ là thuận tiện hơn và duy trì được, tôi nghĩ cả hai giải pháp sẽ có cùng một kết quả.

+0

Tại sao nó không tạo ra cùng một IL chính xác? Tại sao ILMerge phải phát ra IL mới? –

+0

Phần lớn IL sẽ giống nhau, nhưng ILMerge thực hiện một số phép biến đổi. Một số cấu hình có thể định cấu hình như định nghĩa loại sáp nhập. Một số của nó phải làm với các thuộc tính mức assembly. Tôi nghĩ rằng nó có thể thay đổi loại hiển thị, vv – Josh

+0

Không ai trong số đó nên ảnh hưởng đến hiệu suất của hội đồng, tâm trí bạn. – Josh

Các vấn đề liên quan