中国开发网: 论坛: 程序员情感CBD: 贴子 225445
李战
大牛们又拿编译来吓偶。我也来说说
首先,源代码直接编译成本地机器码与JIT的概念是不同的,因为JIT的意思是把中间代码IL转换为机器代码。而中间代码IL基本上是汇编级别的,其编译速度肯定要比源代码直接编译为机器代码快,与其说是编译,还不如说是转换。而且,JIT基本上是用到时才局部编译,而且一般只编译一次后由系统缓存,所以运行效率还是非常高的。
此外,因为Java虚拟机基本上是按中间代码来解释执行的,这是Java程序运行效率一直无法提高的根本原因。即使Java有JIT,但由于Java的中间代码与Java运行需要的系统类库绑得太紧,其JIT的结果不是100%的本地码,因此效率仍然无法提高多少。也就是说:“基本不顶用!”。
但是,.NET是在充分考虑了Java的优点和缺点之后设计的。其中间代码IL设计得更加合理,不但转换为本地机器码的数度奇快(Anders称为“映射”,而不愿称为“编译”),关键是其JIT的结果是100%纯本地代码。微软声称,其优化后的指令速度可以比美C++,因为微软有这个吹牛的资本。
不过,.NET刚刚出来,没有Java那么多现存的应用,还需要时间检验。但感觉MS好像还很少在市场上失败过。拭目以待...
李战(leadzen)

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录