패스잇
게임 · 심화

잡 시스템에 워커 스레드 수를 늘리고 작업을 병렬화했는데 프레임 시간이 거의 줄지 않았습니다. 어떤 원인들을 의심하고 어떤 지표로 확인하시겠어요?

힌트 · 스레드 타임라인으로 워커 점유율과 메인 스레드 대기 구간을 먼저 보고, 잡 단위 크기·의존성 체인·락 경합·메모리 대역폭 같은 후보를 나눠 설명하세요.

스레드 타임라인 프로파일링잡 단위(granularity)동기화·락 경합메인 스레드 병목암달의 법칙

모범답안

먼저 스레드 타임라인 프로파일링으로 워커가 실제로 일하고 있는지, 아니면 메인 스레드가 기다리고 있는지부터 봅니다. 흔한 원인은 세 가지입니다. 첫째, 잡 단위가 너무 잘게 쪼개져 스케줄링·동기화 오버헤드가 작업 시간보다 큰 경우. 둘째, 잡 사이 의존성 체인이 길어 결국 직렬 구간이 남는 경우로, 병렬화되지 않는 구간이 한계를 정합니다. 셋째, 공유 자료구조에 락이 걸려 경합하거나 렌더 커맨드 생성처럼 메인 스레드에서만 가능한 일이 남아 있는 경우입니다. 확인 후에는 잡 크기를 키우고 의존성을 줄이며, 공유 쓰기를 스레드별 버퍼로 분리해 병합하는 방향으로 손보겠습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 게임 개발 면접 질문

← 게임 개발 면접 질문 전체 보기