← 질문 목록
#328깊이 0

조건문 하나가 성능을 좌우하는 경우가 있는가?

운영체제깊이성능

있다. CPU는 조건의 답이 나오기 전에 한쪽을 골라 미리 일을 진행하는데, 틀리면 그동안 한 것을 버린다.

  • 예측

    • 진행

      참일 것 같다고 보고 미리 실행한다

  • 진행

    • 확정

      맞았다. 그대로 이어 간다

    • 되돌림

      틀렸다. 미리 한 것을 버린다

  • 되돌림

    • 예측 (앞의 상태로 돌아갑니다)

      다시 채우고 처음부터 간다

틀렸을 때 버리는 것이 손해다. 채워 둔 것을 비우고 다시 채워야 한다. 몇 사이클을 잃는지는 CPU마다 다르지만 대개 열 몇에서 수십이다.

규칙적인 조건은 잘 맞힌다. 정렬된 데이터를 훑으며 기준값과 견주면 한동안 같은 쪽만 나오므로 거의 안 틀린다.

같은 데이터를 정렬만 해도 빨라지는 유명한 현상이 여기서 나온다. 하는 일은 똑같은데 예측이 맞는 비율이 달라진다.

분기를 아예 없애는 길도 있다. 조건 대신 산술로 고르면 예측할 것이 없다. 다만 읽기 어려워지므로 재 보고 정한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

조건문 하나가 성능을 좌우하는 경우가 있는가?