相关疑难解决方法(0)

Java - 调用静态方法与手动内联 - 性能开销

我感兴趣的是我是否应该手动内联在一些性能敏感算法中称为100k-100万次的小方法.

首先,我认为,由于没有内联,我会产生一些开销,因为JVM必须找到是否要内联这个方法(甚至不能这样做).

然而,前几天,我用静态方法的调用替换了这个手动内联代码,并看到了性能提升.怎么可能?这是否表明实际上没有开销,让JVM内联"意志"实际上提升了性能?或者这在很大程度上取决于平台/架构?

(发生性能提升的例子是用int t = a[i]; a[i] = a[j]; a[j] = t;静态方法调用替换数组交换()swap(int[] a, int i, int j).另一个没有性能差异的例子是当我内联一个10-liner方法时,称为1000000次.)

java performance static-methods inline

12
推荐指数
2
解决办法
2903
查看次数

标签 统计

inline ×1

java ×1

performance ×1

static-methods ×1