世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
- 热点代码探测
通过执行计数器(两个,方法的和循环的)找到最有编译价值的代码(如果一个方法被频繁调用或方法中有效循环次数很多,达到计数器的阈值),然后通知编译器以方法为单位进行编译。 - 两级即时编译
即Client JIT(保证编译质量)和Server JIT(激进编译,获取更高性能)。 - 编译器与解释器混合工作
可以在最优化的程序响应时间与最佳执行性能中取得平衡,而且无需等待本地代码输出才能执行程序,即时编译的压力也相对减小,这样有助于引入更复杂的代码优化技术,输出质量更高的本地代码。 - 准确式内存管理
虚拟机可以知道内存中某个位置的数据具体是什么类型(引用还是数值),这样每次定位对象少了一次间接查找的开销,显著提升执行性能。 - 内存动态分配和垃圾收集机制