Sắp xếp. Trình biên dịch .NET biên dịch mã nguồn của bạn thành IL (một ngôn ngữ trung gian) và đóng gói nó trong một assembly (thường là một tệp .DLL hoặc .EXE) mà bạn triển khai.Tại thời gian chạy, nó được lưu trữ bởi một CLR (thời gian chạy ngôn ngữ chung) chịu trách nhiệm thực thi mã, thực thi các quy tắc bảo mật, v.v. CLR trên máy tính để bàn chính cho Windows (có những người khác như Mono và Silverlight) không giải thích IL, nhưng thay vì "JIT" (chỉ trong thời gian biên dịch) mã IL thành mã gốc trước khi thực hiện các phương thức (hàm).
Lưu ý rằng thực sự có một số lợi thế về hiệu suất cho just in-time compilation. Ví dụ, CLR có thể tối ưu hóa mã nguồn gốc mà nó tạo ra dựa trên đặc tính hiệu năng của máy mà nó đang chạy trên loại CPU, kích thước bộ nhớ cache CPU, số CPU, kích thước RAM, vv. không biết mã máy mà họ tạo ra cuối cùng sẽ được thực hiện vào ngày nào.
Ngoài ra, các hội đồng có thể được "tiền JITted" sử dụng công cụ có tên là ngen. Trong quá trình này, mã gốc được biên dịch từ IL trước khi assembly được thực hiện và được lưu trữ trên đĩa. Bằng cách đó, không có chi phí JITting nào phát sinh trong thời gian chạy.
Nguồn
2009-01-17 04:54:33
tôi luôn luôn nghe MSIL như trái ngược với Cil. Được gọi là MSIL trên outs? –
@PhoenixRedeemer: Ban đầu được gọi là MSIL, trong bản phát hành beta của ngôn ngữ .NET, nhưng do tiêu chuẩn hóa (Ecma-335 http://is.gd/gchW) hiện được chính thức gọi là CIL ... – CMS