성능·디버깅
5초 화면 로딩 계측
금융 앱의 계좌 상세 화면이 첫 표시까지 5초 걸립니다. 감으로 고치지 않으려면 그 5초를 어떤 구간으로 나누어 측정하겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
금융 앱의 계좌 상세 화면이 첫 표시까지 5초 걸립니다. 감으로 고치지 않으려면 그 5초를 어떤 구간으로 나누어 측정하겠습니까?
화면 진입부터 첫 렌더까지를 요청 준비, 네트워크 왕복, JSON 디코딩, 로컬 DB 조회, 뷰 구성과 첫 레이아웃의 다섯 구간으로 나누고 각 경계에 OSSignposter로 interval을 찍은 뒤, Instruments의 os_signpost 트랙에서 어느 구간이 5초의 대부분을 차지하는지 본다. 네트워크 구간은 URLSessionTaskMetrics로 DNS, 연결, 서버 대기, 전송을 다시 쪼갠다.
성능·디버깅주관식기초
"앱이 느리다"는 막연한 피드백만 받았습니다. Instruments로 어떻게 접근하나요?
#time-profiler
성능·디버깅객관식입문
특정 버튼을 누르면 화면이 1초 정도 멈춥니다. "메인 스레드에서 어떤 함수가 시간을 잡아먹는지"를 보려면 가장 먼저 어떤 Instruments 템플릿을 켜야…
#time-profiler
성능·디버깅주관식딥다이브
Time Profiler를 돌렸더니 메인 스레드 시간의 80%가 CA::Transaction::commit이나 UIKit 내부 프레임에 잡힙니다. 내 코드가 안…
#time-profiler
성능·디버깅주관식딥다이브
Time Profiler 에서 스크롤 중 핫패스의 상위 항목이 swift_retain·swift_release·swift_bridgeObjectRetain으로…
#time-profiler