Enum.HasFlag는 박싱을 유발한다?

어디서 들었는데 Enum.HasFlag는 직접 비트 연산을 수행하는 것 보다 속도가 느리다고 합니다. 물론 메서드 호출로 인한 오버헤드 때문에 그럴 수는 있겠으나 진짜 문제는 박싱이라고 하는군요. HasFlag 메서드가 인수로 Enum을 받기 때문에 여기서 박싱이 생긴다고 합니다(Enum은 클래스이기 때문).

근데 닷넷 코어에서는 JIT 최적화 때문에 비트 연산과 동일하다는 말이 있더라고요. 제가 직접 벤치마크를 하면 좋겠지만 어떻게 하는지 몰라서(…) 말이죠.

2개의 좋아요

gpt에게 물어보니 바로 알려준는 무서운 세상 ㄷㄷㄷ

4개의 좋아요