关于JVM

JVM 有三种Mode:

1. interpreted mode (指将源代码编译成字节码, 运行时不包含热点编译。此模式强制JVM执行所有的字节码。这会降低运行速度,通常低10倍或更多。)

2. compiled mode (将全部字节码编译成机器语言)

3. mix mode (包含两部分: a. 将源代码编译成字节码, b. 在运行阶段 视情况进行热点编译)

热点编译的基本单位是方法。是否发生热点编译的条件有两个:

1. 方法的执行次数超过一定阈值(由参数CompileThreshold来设定)时,将此方法进行热点编译

2. 某个循环的次数超过一定阈值时,此循环所在的方法将被热点编译。当此种情况发生时,会产生栈上替换 (on stack replace -- OSR) . OSR 是JIT的动态切换技术, 在运行时将栈中代码替换编译后的机器码。

查看这些java 参数的初始设置, 可以使用以下命令查看:

java -XX:+PrintFlagsFinal -version | findstr CompileThreshold. 

猜你喜欢

转载自arual.iteye.com/blog/2265581
今日推荐