2010-01-11 3 views
5

나는 C#에서 클래스 sealed을 만드는 것이 컴파일러가 다른 방법으로는 만들 수없는 특정 최적화 (예 : 속성 게터 인라이닝)를 수행 할 수 있기 때문에 고성능 시나리오에서 사용하는 것이 좋습니다. VB.NET에서 NotInheritable에 대해서도 마찬가지입니까? 내 추측은 그렇습니다.하지만 누군가 다른 사람이 이미 조사하고 답을 알고있는 경우에 대비하여이 질문을 게시하고 있습니다.VB.NET에서 NotInheritable 클래스를 만드는 것은 C#에서 봉인 된 것과 동일한 (잠재적 인) 컴파일러 최적화를 제공합니까?

답변

8

예, C#의 sealed에 대해 생성 된 IL은 VB.NET에서 NotInheritable과 동일하며 잠재적 최적화는 JIT 컴파일러가 원래 언어와 상관없이 수행합니다.

+0

JIT 컴파일러는 파생 된 클래스가 런타임에 존재하는지 여부를 확인할 수 없다는 것을 알 수 있습니다. 이 작업을 수행하는 것이 반드시 간단하지는 않다는 점을 이해할 수 있습니다. (계층 구조가 교차하는 공용 클래스의 경우 더욱 그렇습니다) JIT가 전통적인 컴파일 시간 최적화보다 향상되어야하는 것과 같은 것은 아닙니다. –

관련 문제