반응형
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.
따라서 최적화의 마지막 단계에서 시도해 볼 가치가 있지만 성능에 차이가 있는지 확인하지 않고는 일상적으로 수행하는 것을 귀찮게하지 않습니다.
반응형
'Program Club' 카테고리의 다른 글
| try / catch를 사용한 최종 변수 할당 (0) | 2020.11.28 |
|---|---|
| Scala의 @inline 주석이 실제로 성능에 도움이됩니까? (0) | 2020.11.28 |
| CORS 및 Access-Control-Allow-Headers는 어떻게 작동합니까? (0) | 2020.11.28 |
| shared_ptr이 하나만 사용하는 경우 unique_ptr이 두 개의 템플릿 매개 변수를 사용하는 이유는 무엇입니까? (0) | 2020.11.28 |
| rxJS의 파이프는 무엇입니까? (0) | 2020.11.28 |