我已经使用过-XX:+PrintCompilation
,并且我知道JIT编译器的基本技术以及为什么使用JIT编译。
但是我仍然没有找到JVM如何决定JIT编译方法的方法,即“何时到了JIT编译方法的正确时间”。
我假设每个方法都开始被解释,并且只要不将其归类为“热方法”,就不会编译吗?我脑海里有些东西我读到,当一个方法执行至少10.000次(解释该方法10.000次后,将被编译)时,该方法被视为“热”,但我必须承认不知道这个或我在哪里读过。
所以总结一下我的问题:
(1)是否对每种方法都进行了解释,只要它没有被归类为“热”方法(因此已经被编译),或者即使不是“热”方法也有理由被编译吗?
(2)JVM如何将方法分为“非热”和“热”方法?执行次数?还要别的吗?
(3)如果“热”方法有某些阈值(如执行次数),是否有Java标志(-XX:...
)设置该阈值?
临摹微笑
牧羊人nacy
江户川乱折腾