rkr*_*ter 7 c# clr jit managed-code
Q1)为什么C#最初编译为IL然后在运行时JIT编译并在虚拟机(?)之上运行.或者JIT是否符合本机机器代码?
Q2)如果第二个为真(JIT符合本机机器代码),那么代码运行的.NET沙箱在哪里?
Q3)此外,为什么代码首先编译为IL.为什么不一直编译到本机代码?MS中有一个名为ngen的工具,但为什么可选?
Pao*_*olo 12
在进程运行时,IL将JIT(JIT =及时)编译为本机机器代码.
使用虚拟机层允许.NET跨平台以一致的方式运行(例如,无论您是在32位还是64位机器上运行,int总是32位,而C++不是这种情况).
JIT编译允许优化在运行时动态地为代码定制自己(例如对经常调用的代码应用更积极的优化,或者使用特定机器上可用的硬件指令,如SSE2),这是你无法做到的一个静态编译器.
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |