2009-02-06 30 views
11

Tôi muốn thực thi nGen ở cuối quá trình cài đặt của tôi chỉ đơn giản là để cải thiện hiệu suất nhận thức của lần khởi động đầu tiên của ứng dụng của tôi. Làm thế nào tôi có thể làm điều đó? Có một số phương pháp hay nhất không? Tôi có thể chắc chắn rằng nGen luôn được cài đặt với .NET Framework không?Làm cách nào để chạy nGen ở cuối quá trình cài đặt (MSI)?

Cảm ơn!

Trả lời

1

Trước hết "Có", bạn có thể đảm bảo rằng nếu chúng có khung .Net được cài đặt mà chúng có Ngen. Điều duy nhất bạn cần biết là phiên bản nào họ đã cài đặt, vì nó khác với phiên bản 1.1 và 2.0. Những gì tôi đã làm trong quá khứ chỉ đơn giản là tạo ra một kịch bản mà trình cài đặt của tôi gọi vào cuối cùng mà chạy ngen trên tất cả các hội đồng.

0

Để cải thiện hiệu suất nhận thức khi khởi động, hãy xem các số liệu thống kê trong ứng dụng của bạn. Rất nhiều statics có thể gây ra một lượng đáng kể chi phí khi bắt đầu một ứng dụng.

Ngoài ra, hãy xem xét chỉ có biểu mẫu chính của bạn trong EXE và mọi thứ khác trong một DLL riêng biệt. Điều này không chỉ cải thiện hiệu suất mà còn giúp bảo đảm rằng bạn tách riêng chế độ xem khỏi dữ liệu.

Cuối cùng, nếu bạn đặt trên NGENing, hãy xem trợ giúp về cách chạy các tác vụ tùy chỉnh trong MSI của bạn. Bạn sẽ có thể thiết lập một hành động tùy chỉnh để thực hiện những gì bạn muốn.

1

Điều này blog post nên được sử dụng.

Chỉnh sửa: Vì bạn không sử dụng Wix, thì this cũng có thể được sử dụng.

+0

Tôi đã nhìn thấy bài viết trên blog này trước đây, nhưng tôi không sử dụng WiX. – Martin

8

Bạn có thể tắt lắp ráp của mình bằng cách sử dụng tác vụ cài đặt tùy chỉnh. Các liên kết sau giải thích cụ thể hơn nữa:

http://www.dotnetperls.com/ngen

http://www.bobpowell.net/prejit.htm

Tôi cũng có thể nhớ một cuộc thảo luận tốt về cài đặt Paint.NET của (bao gồm .NET Framework bootstrapping, trước JITting vv), nhưng tôi không thể tìm thấy nó vào lúc này. Tôi sẽ chỉnh sửa bài đăng này nếu tôi gặp lại nó.

+0

cả hai liên kết đều không còn tồn tại – Wouter

+1

Cảm ơn thông tin, @Wouter. Tôi đã cập nhật liên kết dotnetperls (họ phải chuyển sang định tuyến MVC và không chuyển hướng các URL cũ). Liên kết bobpowell.net vẫn có vẻ ổn - bạn có thể thử lại không? –

0

Khi 'Micah' cho biết, , Bạn sẽ tìm thấy NGen được cài đặt với .Net Framework.

Hãy xem qua các ví dụ về trình cài đặt WiX 3.5 cách NGEN lắp ráp của bạn trong khi cài đặt.

NGen: Creating Setup Projects

Tôi hy vọng điều này sẽ giúp bạn.

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