それとも、JITがとにかく自動的に処理するコードを散らかすだけですか?
パフォーマンスが向上するケースをまだ見つけていません。かなりの数の異なる場所で試しました。 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
}
}
-optimise
でコンパイルした場合。そして、違いはわかりますが、JITコンパイラーは同じ最適化がD
に適用されることに気付くことができるため、通常はそれより速く実行されません。
したがって、最適化の最終段階で試してみる価値はあるかもしれませんが、パフォーマンスに違いがあるかどうかを確認することなく、日常的に行うことはありません。