C#托管的中间代码IL为什么和机器代码执行速度一样快,与Java对比

C#托管的中间代码IL为什么和机器代码执行速度一样快,IL是即时编译的(JIT),java字节码是解释型的。java会把所有的代码都编译完,在下次运行时就不需要再去编译已经编译过的代码。微软对编译做了优化,JIT只编译调用的代码,因为程序执行过程中,大部分代码都不会被调用,因此也没有必要编译,JIT不回去编译这种代码。

微软的JIT还会提高性能,因为编译过程的最后一部分是在CLR中执行的,JIT编译器确切的知道程序运行在什么类型的处理器上,因此可以利用处理器提供的任何特性和特定的机器代码指令去优化最后的可执行代码,传统编译器的优化代码不能区别程序会允许在什么处理器上,知识简单的优化代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值