2014-08-28 17 views
6

Khi độ chín .net, khả năng JIT đã được cải thiện để trở nên cực kỳ lười biếng. Tức là, không tạo mã máy nếu nó không cần thiết. Nói chung, đây là một điều tốt.Buộc JIT linh hoạt

Tuy nhiên, nếu tôi đang cố gắng warmup an application Tôi có thể thích lập trường JIT tích cực hơn. Có cách nào để cấu hình một ứng dụng .net sao cho tất cả các phương thức của một lớp được biên dịch JIT, đơn giản là vì lớp được xây dựng?

Nếu có, mẫu đối tượng sáng tạo ưa thích của tôi có thể nhanh chóng vẽ đồ thị đối tượng của tôi, và tôi sẽ có sẵn mọi thứ cùng lúc với JIT. Thật là tốt.

Việc này có thể thực hiện được không?

+1

Bạn có thể xem .NET Native. Afaik, ngay bây giờ nó chỉ dành cho các ứng dụng Windows Store nhưng chúng sẽ mở rộng sang các loại khác sau này. http://msdn.microsoft.com/en-us/library/dn584397(v=vs.110).aspx –

+0

Bạn có thể sử dụng ngen hoặc nó có thể được thực hiện theo cách thủ công của tôi gọi 'RuntimeHelpers.PrepareMethod' cho mỗi phương pháp. –

+0

Không phải là 'tạo ra mã máy [khi cần thiết] lúc runtime' một phần cơ bản của một trình biên dịch JIT? Luôn luôn có [Native Image Generator] (http://msdn.microsoft.com/en-us/library/6t9t5wcf (v = vs.110) .aspx), nhưng tất nhiên có [trade-off] (http: //blogs.msdn.com/b/clrcodegeneration/archive/2007/09/15/to-ngen-or-not-to-ngen.aspx) giữa hai. – PoweredByOrange

Trả lời

0

bạn có nghĩa là, bạn muốn tất cả mọi thứ trước-of-thời gian biên soạn :-)

Cuối cùng họ đã làm điều này cho bạn - announced at Build 2014:

Somasegar nói với tôi rằng các nhà phát triển nói rằng Microsoft .NET luôn một ngôn ngữ rất hiệu quả để lập trình, nhưng không phải lúc nào cũng phân phối hiệu suất họ đang tìm kiếm. "Chúng tôi đã và đang làm việc với rất nhiều sự đổi mới của để cho các nhà phát triển biết rằng .NET vẫn là nền tảng rất khả thi cho các nhà phát triển muốn xây dựng ứng dụng trong thế giới hiện đại này," . Với trình biên dịch gốc trước của .NET, các nhà phát triển sẽ xem thời gian khởi động nhanh hơn, sử dụng bộ nhớ thấp hơn và hiệu suất tổng thể tốt hơn là hiệu suất , Microsoft hứa hẹn. Tính năng mới này hiện đang ở chế độ xem trước và cho phép nhà phát triển nhắm mục tiêu cả nền tảng X64 và ARM .

Bạn có thể try it out (xem trước chỉ vào lúc này, và có thể chỉ làm việc cho các ứng dụng 'phổ thông' do đó, YMMV như thế nào hữu ích đó là), biết thêm là available on MSDN

2

Như một mặt lưu ý - bạn có thể sử dụng NGen.exe để tạo ra hình ảnh gốc của dll của bạn tại thời điểm triển khai (NB: Nó không phải là một giải pháp hoàn hảo - vì nó có một số nhược điểm - xem tài liệu cẩn thận)

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