2

VB.NET 2008 컴파일러는 Select Case 문을 선택적으로 최적화합니까?VB.NET 사례 컴파일러 최적화를 선택 하시겠습니까?

예를 들어, 충분한 양의 정수 경우가있는 Select Case 문을 2 진 검색으로 구성 할 수 있습니다.

정수 또는 다른 기본 데이터 형식을 비교하는 여러 다른 If가있는 문을 If 대신 Select Case를 선택해야하는지 여부가 궁금해서이 질문을드립니다.

답변

1

Select Case 40 개의 선택 항목이 4 문보다 10 배 이상 빠릅니다. 이는 바이너리 검색으로 얻는 것보다 더 개선 된 것입니다. 간단한 정수 Select Case은 계산 된 goto 문과 동일한 최신 기계 코드를 사용합니다. 즉, 정수 값을 기반으로 적절한 "대소 문자"로 직접 분기되도록 컴파일됩니다.

나는 Select Case 가야 할 사람이라고 생각합니다.

2

일반적으로 이러한 종류의 성능 미세 최적화에 비해 코드 가독성 및 유지 관리 가능성에 대해 걱정해야합니다.

이 스위치가 1000 초 (수백만 회) 실행되는 루프 안에 있지 않으면 응용 프로그램의 성능 병목 일 가능성이 매우 낮습니다.

일관성을 위해 결정을 내리고 준수하십시오. 일반적으로 성능 병목 지점을 분석 할 때까지 코드를 성능 튜닝하지 마십시오.

도 참조하십시오. this question.

관련 문제