参考:
https://time.geekbang.org/column/article/14575
什么是方法内联?
在编译的时候,遇到方法调用,那么直接把方法体搬过来,取代原有的调用的优化手段。
可以带来什么好处?
1.可以消除本身调用的性能开销。就是说,本身遇到方法调用的时候,程序需要保存当前的执行位置,然后先压入一个被调用方法的栈帧,继而访问字段,再弹出栈帧,最后恢复当前程序执行位置。但是内联之后,上述流程只剩下字段访问了,省去很多开销。
2.触发一些其他优化手段。
内联发生在什么时候?
不论是老的C2 还是新的Graal,都是在解析字节码的过程中进行方法调用的内联。