请教路过的高手:
JIT 编译器选择将最频繁执行的方法编译成本地代码。运行时才进行本地代码编译而不是在程序运行前进行编译(用 C 或 C++ 编写的程序正好属于后一情形),保证了可移植性的需求? 请解释一下为什么?jit(即时编译方式)的工作原理是什么?一边运行一边编译?不理解。它和C 或 C++ 提前编译有什么不同?查了好久,困惑了好久,多谢各位帮帮忙~
JIT 编译器选择将最频繁执行的方法编译成本地代码。运行时才进行本地代码编译而不是在程序运行前进行编译(用 C 或 C++ 编写的程序正好属于后一情形),保证了可移植性的需求? 请解释一下为什么?jit(即时编译方式)的工作原理是什么?一边运行一边编译?不理解。它和C 或 C++ 提前编译有什么不同?查了好久,困惑了好久,多谢各位帮帮忙~
楼主【wbc1986】截止到2008-07-25 08:44:28的历史汇总数据(不包括此帖):
发帖的总数量:5 发帖的总分数:50 每贴平均分数:10
回帖的总数量:8 得分贴总数量:3 回帖的得分率:37%
结贴的总数量:5 结贴的总分数:50
无满意结贴数:2 无满意结贴分:40
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:40.00 % 无满意结分率:80.00 %
敬礼!
jvm和操作系统相关,而.class只和jvm相关,他从这点来保证可移植,但 是否真的是可移植还难说,一般来说,问题不大jit(即时编译方式)的工作原理是什么?一边运行一边编译?不理解。
个人理解是,.class已经是编译好了的文件,但是需要通过jvm一起再次组合才能运行
但程序要运行最终要是转换成CPU能识别的二进制,所以:JIT编译器在程序开始执行前把所有字节码翻译成本地机器码,然后再将翻译后的机器码放在CPU上运行
但程序要运行最终要是转换成CPU能识别的二进制