Daily iOS
성능·디버깅

앱 내 렉(hang) 모니터 구현

사내 APM에 "메인 스레드가 일정 시간 이상 멈추면 스택을 남기는" 기능을 넣으려 합니다. 앱 안에서 렉(卡顿)을 어떻게 감지하겠습니까?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

메인 RunLoop에 CFRunLoopObserver를 달아 BeforeSources→AfterWaiting 사이가 임계(예: 250ms)를 넘는지 감시 스레드에서 세마포어 타임아웃으로 판정하거나, 워치독 스레드가 주기적으로 메인에 핑을 보내 응답 지연을 잰다. 프로덕션에서는 MetricKit MXHangDiagnostic을 우선 활용한다.

받은 질문 공유