编译器为内联一个方法所使用的过程是这样的:内联方法的连续代码块被复制到调用该方法的调用点处。内联
方法内的任何局部变量在块内分配。内联方法的输入参数和返回值被影射到调用方法的局部变量空间。如果内
联方法有多个返回点,则这些返回点就变成内联块尾部的分支(可怕的goto)。所有与调用有关的痕迹以及随
之即来的所有可能的性能损失都被消除了。
然而避免调用只是与内联有关的性能项的一半,调用间优化是内联性能的另一半。
编译器为内联一个方法所使用的过程是这样的:内联方法的连续代码块被复制到调用该方法的调用点处。内联
方法内的任何局部变量在块内分配。内联方法的输入参数和返回值被影射到调用方法的局部变量空间。如果内
联方法有多个返回点,则这些返回点就变成内联块尾部的分支(可怕的goto)。所有与调用有关的痕迹以及随
之即来的所有可能的性能损失都被消除了。
然而避免调用只是与内联有关的性能项的一半,调用间优化是内联性能的另一半。