Program Club

Scala의 @inline 주석이 실제로 성능에 도움이됩니까?

proclub 2020. 11. 28. 12:48
반응형

Scala의 @inline 주석이 실제로 성능에 도움이됩니까?


아니면 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 컴파일러가 동일한 최적화가 .NET에 적용된다는 것을 알 수 있기 때문에 일반적으로 더 빨리 실행되지 않습니다 D.

따라서 최적화의 마지막 단계에서 시도해 볼 가치가 있지만 성능에 차이가 있는지 확인하지 않고는 일상적으로 수행하는 것을 귀찮게하지 않습니다.

참고 URL : https://stackoverflow.com/questions/2709095/does-the-inline-annotation-in-scala-really-help-performance

반응형