关于CLR的疑问 JIT产生的机器代码已经是面向具体cpu指令集的代码了,直接由CPU执行就好了,就像C生成的机器码一样,为什么还要由CLR来执行呢,不懂。或者说,JIT产生的汇编代码和普通C产生的汇编代码有什么区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的理解就是错的...CLR是执行native code没错,但native code从哪里来的?.NET程序编译后只有IL code,除非你提前预编译生成native image,否则必须先调用JIT实时编译为native code(即首次执行时编译)...明白了? JIT的编译机制我知道。我的疑问是对于JIT编译后的native code,它的执行需要CLR来完成吗 你见过哪个native code能自己执行?必须要有进程调用才能执行...JIT只是个编译器,所以说你的理解是错的... CLR最终执行的只有本地机器码,JIT编译的作用是在运行时将IL代码解析为机器码执行 怎么还不明白啊...比如有个C程序“test.exe”,显然它是native code...它应该怎么执行?你在资源管理器里双击或写到注册表的自动启动项等等,不管怎么做其实都是用shell进程在执行它...现在有个.NET托管程序“test.exe”,它是IL code...你用shell进程试图执行它时,因为它不是native code不能直接执行,所以shell需要调用CLR再由CLR执行它...如果它是预编译的native image就直接执行,如果不是查看cache是否有编译过的native image,有则直接执行没有则调用JIT编译后再执行同时将编译后的native image存入cache...明白了吗?IL code的native image对用户是不可见的,也体现了IL code的平台无关性... 还有一点...IL code的native image和native code最大的区别就是native image是依赖于.NET Framework环境才能运行的,所以必须CLR来调用... 比较清楚了,多谢。还有点小疑问,native image也是在Shell进程中执行的吗? a new process started by shell. 请教关于checkbox取值入库的办法 有些难度的算法问题!! 翻译牛人来顶 如何用asp.net实现像51JOB职位搜索中的功能? 如何在MyDataGrid控件中自动删除超时的数据 VS2005 无法打开 请问大家一个关于serialport类的问题 兄弟些救命!!!!!各位大哥帮帮小弟 ,,, 求VS 2012 打包教材 DataSet的绑定问题2 求关于c#操作视频的资料 Process.Start打不开A程序再尝试B程序 【初学者求教】这个“符号”论坛打不出来 求将其转化成对应的数字
我的疑问是对于JIT编译后的native code,它的执行需要CLR来完成吗
还有点小疑问,native image也是在Shell进程中执行的吗?
a new process started by shell.