即时(JIT)编译器有什么作用?
与非JIT编译器相比,JIT编译器专门做什么? 有人可以给出简洁明了的描述吗? #1楼 Java编译器生成字节代码(与体系结构无关)后,执行将由JVM(在Java中)处理。 字节码将由加载程序加载到JVM中,然后解释每个字节指令。 当我们需要多次调用一个方法时,我们需要多次解释相同的代码,这可能比需要花费更多的时间。 因此,我们有了JIT(即时)编译器。 将字节加载到JVM(运行时)后,整个代码将被编译而不是解释,从而节省了时间。 JIT编译器仅在运行时起作用,因此我们没有任何二进制输出。 #2楼 JIT-及时,单词本身说出何时需要(按需) 典型场景: 源代码已完全转换为机器代码 JIT场景: 源代码将转换为汇编语言,例如结构[对于C#来说,是用于ex IL(中间语言),对于Java,是ByteCode)。 仅当应用程序需要的中间代码仅转换为机器代码时,才将中间代码转换为机器语言。 JIT与非JIT比较: 在JIT中,并非所有代码都首先转换为机器代码,一部分必需的代码将被转换为机器代码,然后,如果所调用的方法或功能不在机器中,则将其转换为机器代码...它减少了CPU的负担。 由于机器代码将在运行时生成...。JIT编译器将生成针对机器的CPU体系结构进行了优化的机器代码。 JIT示例: 在Java中,JIT在JVM(Java虚拟机)中 在C#中,它在CLR(公共语言运行时)中