@branchHint

@branchHint

프로그램이 커지고 조건 분기가 늘어날수록, 어떤 가지가 실제로 자주 실행되는지를 컴파일러가 알면 성능 최적화가 훨씬 수월해져요. 그런데 실행 시점에만 알 수 있는 일도 있죠. 이때 프로그래머가 힌트를 줘서 컴파일러가 분기 확률을 더 잘 판단하도록 돕는 게 바로 @branchHint예요.

출처: Zig Documentation

본문

@branchHint는 주어진 제어 흐름 분기(branch)가 실제로 도달할 가능성이 어느 정도인지를 최적화기(optimizer)에 힌트로 알려주는 내장 함수예요. 시그니처는 다음과 같습니다.

@branchHint(hint: BranchHint) void

BranchHint 타입의 값으로 어떤 힌트를 줄지를 정하고, 그에 맞춰 컴파일러가 분기 배치나 예측 같은 최적화 방향을 잡아요. BranchHint 타입 자체는 다음처럼 불러와 사용할 수 있습니다.

@import("std").lang.BranchHint

그런데 이 함수를 아무 데나 쓸 수 있는 건 아니에요. 오직 제어 흐름 분기(branch)의 첫 문장, 또는 함수의 첫 문장으로만 유효합니다. 분기 안에서 첫 문장으로 써야 컴파일러가 그 분기를 기준으로 힌트를 해석할 수 있기 때문이에요.

더 알아보기