Rex*_*err 58
我还没有找到一个提高性能的案例,我已经在很多不同的地方尝试过了.JVM似乎非常善于在可能的情况下进行内联,即使你在Scala中要求@inline,它也不能总是这样做(有时我注意到它甚至在我认为它应该是能够).
您希望看到字节码差异的地方是这样的:
object InlineExample {
final class C(val i: Int) {
@inline def t2 = i*2
@inline def t4 = t2*2
}
final class D(val i: Int) {
def t2 = i*2
def t4 = t2*2
}
}
Run Code Online (Sandbox Code Playgroud)
编译时-optimise.并且您确实看到了差异,但它通常不会运行得更快,因为JIT编译器可以注意到相同的优化适用于D.
所以在优化的最后阶段可能值得一试,但如果不检查它是否会对性能产生影响,我也不会费心去做.
| 归档时间: |
|
| 查看次数: |
13960 次 |
| 最近记录: |