C에서 switch 문을 사용하면 (점프 테이블을 사용한다고 가정) x86 프로세서의 파이프 라인이 비어 있습니까? 그 다음에 실행할 명령어를 알기 위해 테이블 조회의 결과가 필요하기 때문에 그렇게 생각할 수 있습니다. 파이프 라인이 완전히 비워지지 않을만큼 일찍 그 결과를 되돌릴 수 있습니까?C에서 switch 문을 사용하여 x86 파이프 라인을 비 웁니다.
4
A
답변
6
7
점프 테이블이 반드시 파이프 라인을 비우는 것은 아닙니다. 간접 분기는 현대 프로세서에서 예측되며 분기 예측자는 예상보다 나은 작업을 수행합니다. 분명히 정확하게 예측 된 간접 분지는 실속을 일으키지 않습니다.
전혀 분기하지 않는 것이 바람직하지만 종종 불가능합니다 (또는 순 손실로 인한 많은 오버 헤드가 발생 함). 점진표를 일련의 조건부 분기로 대체하는 것이 때로는 유익하지만 대체 시퀀스의 분기 수가 합리적으로 작은 경우에만 유용합니다.
관련 문제
- 1. switch 문을 C에서 generic으로 만드는 방법 #
- 2. switch 문을 함께 그룹화 하시겠습니까?
- 3. 파이프 라인을 어떻게 선언해야합니까?
- 4. 파이프 라인을 통해 전송
- 5. Switch 문을 사용하여 단추 처리 클릭
- 6. foreach 루프에서 switch 문을 제거합니다.
- 7. 인텔 코어 2 듀오의 명령 파이프 라인을 배제 하시겠습니까?
- 8. throw 문과 switch 문을 사용하여 null 값을 반환하는 경우
- 9. if() else if()를 사용하여 switch 문을 사용하면 성능이 향상됩니까?
- 10. JavaScript/Switch 문을 덜 사용하십시오 CSS
- 11. 블록이있는 switch/case 문을 어디에 넣을지
- 12. switch 문을 완성하는 데 문제가 있습니다.
- 13. 큰 switch 문을 피하는 방법은 무엇입니까?
- 14. 와일드 카드로 Javascript switch 문을 사용 하시겠습니까?
- 15. 파이썬 stdout을 리눅스의 파이프 라인을 사용하여 C 표준으로 리디렉션하는 방법
- 16. HL7을 사용하여 BizTalk 2006 R2에서 송신 파이프 라인을 실행하지 못했습니다.
- 17. 복잡한 파이프 라인을 수행하는 NSTask의 예
- 18. NLog : AppDomain UnhandledException에서 BufferingTargetWrapper를 비 웁니다.
- 19. x86 PE 바이너리를 C에서 decompiling하는 중입니까?
- 20. 파이프 라인을 요청하기 위해 asp.net_isapi를 추가하면 성능이 저하됩니까?
- 21. 전송 파이프 라인을 통과하는 메시지의 Exchange 수신 커넥터 이름
- 22. 비 자동 증분 ID를 사용하여 insert 문을 수행하는 방법은 무엇입니까?
- 23. `if` 문을`switch` 문으로 변환 할 수 있습니까?
- 24. Java 질문 : 다른 스위치 내에서 switch 문을 사용할 수 있습니까?
- 25. 다음과 같습니다 난 크리스탈 보고서에 switch 문을 CASE 문
- 26. 레일 3 - 복잡한 Switch 문/문을 처리하는 방법
- 27. 필터 내에서 PowerShell 파이프 라인을 종료하거나 중지 할 수 있습니까?
- 28. Python Scrapy, 항목에 파이프 라인을 정의하는 방법은 무엇입니까?
- 29. 하나의 runspace에 대해 많은 파이프 라인을 가질 수 있습니까?
- 30. Rails 3.1 자산 파이프 라인을 사용하는 외부 라이브러리 포함
일반적으로 조건부 점프는 파이프 라인을 스 래시 (thrash)합니다. –