Java编译生成的.class文件存的是字节码,那么.net EXE中究竟是IL还是机器码? C#
4个回答
展开全部
.Net编译好的不是汇编指令,而是IL指令,Java是字节代码
JIT
运行时.Net装载入口Assembly,CLR公共语言运行时运行代码创建主应用程序域,然后CLR提取代码从IL编译为汇编指令并执行,循环到第二部分代码。。。每部分代码都是即时编译(JIT)。代码运行中CLR监视内存使用情况并处理废品回收等等。
Java
不同的是编译为字节代码,字节代码有一套通用的语法,可以跨平台。字节代码是解释性的。Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的interpreter(解释器)负责将字节码文件解释成为特定的机器码进行运行。
JIT
运行时.Net装载入口Assembly,CLR公共语言运行时运行代码创建主应用程序域,然后CLR提取代码从IL编译为汇编指令并执行,循环到第二部分代码。。。每部分代码都是即时编译(JIT)。代码运行中CLR监视内存使用情况并处理废品回收等等。
Java
不同的是编译为字节代码,字节代码有一套通用的语法,可以跨平台。字节代码是解释性的。Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的interpreter(解释器)负责将字节码文件解释成为特定的机器码进行运行。
展开全部
都有.
每个exe都有一条跳转到mscoree.dll的_CorExeMain函数的机器码.
_CorExeMain会负责初始化运行环境并查找exe镜像中的IL并运行.
剩下的同一楼.
每个exe都有一条跳转到mscoree.dll的_CorExeMain函数的机器码.
_CorExeMain会负责初始化运行环境并查找exe镜像中的IL并运行.
剩下的同一楼.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用系统提供的NGen.exe工具生成本地代码
这样做的好处是加快启动速度,减小程序工作集,
但是会降低性能
这样做的好处是加快启动速度,减小程序工作集,
但是会降低性能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那么是不是每次运行EXE都有一次编译过程,哪怕第二次运行的指令集与第一次完全相同?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询