首页 新闻 会员 周边 捐助

程序高手们,看看这样的解释有道理吗?

0
悬赏园豆:10 [已解决问题] 解决于 2013-06-22 11:40

他们说.net语言生成的中间代码,是因为比直接生成可执行的2进制文件有些优势,因为中间代码交给CLR去解释成2进制命令来执行,CLR能判断当前机器的硬件环境,生成的2进制命令会针对该环境优化,所以速度更快……

 

大家认同这个说法吗?如果真的是这样,那么为什么还说C、C++开发,生成的EXE会比.net或java的更快呢?.net和java应该都差不多吧,都靠一个内似虚拟机的东西来解释执行,估计性能也不相上下吧?

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2013-06-01 12:30
< >
分享
最佳答案
0

"因为中间代码交给CLR去解释成2进制命令来执行,CLR能判断当前机器的硬件环境" 这是真的,而且方便跨平台,毕竟API是一样的

"生成的2进制命令会针对该环境优化,所以速度更快" 这TM是扯淡的,.NET自身的DLL都是ngen后在高速缓存中的.

收获园豆:5
56180825 | 小虾三级 |园豆:1749 | 2013-06-01 12:54
其他回答(4)
0

不可能是比native更快, 至于.net和java谁快只能看实现吧

收获园豆:1
悟了 | 园豆:521 (小虾三级) | 2013-06-01 14:06
0

这个问题就是伪命题?

伏草惟存 | 园豆:1420 (小虾三级) | 2013-06-02 18:55
0

"生成的2进制命令会针对该环境优化,所以速度更快"这个是对的,确实有过优化。慢的原因就是封装啊封装啊封装。你见过一个原生的api被托管C++封装,然后再利用C#封装一层么? 我们项目中就这么用,把clr C++当作了胶水语言。

收获园豆:3
程序诗人 | 园豆:313 (菜鸟二级) | 2013-06-04 15:45
0

优化确实有,但是肯定不如原生的快,因为它再优化还是要clr翻译后再提交给cpu执行,哪有直接提交给cpu执行的快

收获园豆:1
平如水 | 园豆:696 (小虾三级) | 2013-06-15 22:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册