Java - 调用静态方法与手动内联 - 性能开销
我感兴趣的是,我是否应该手动内联小方法,这些方法在某些性能敏感的算法中称为100k - 100万次。
首先,我认为,如果不内联,我会产生一些开销,因为JVM必须找到是否内联此方法(甚至无法这样做)的确定。
但是,前几天,我用静态方法的调用替换了这个手动内联的代码,并看到了性能的提升。这怎么可能?这是否表明实际上没有开销,并且通过让JVM以“其意愿”内联实际上提高了性能?或者这在很大程度上取决于平台/架构?
(发生性能提升的示例是将数组交换 () 替换为静态方法调用 。另一个没有性能差异的例子是,当我内联了一个10行方法,它被调用了1000000次。int t = a[i]; a[i] = a[j]; a[j] = t;
swap(int[] a, int i, int j)