성능 분석

프로파일 결과를 나타내는 플레임 그래프(flame graph)를 읽는 방법으로 올바른 것은?

  1. A각 함수의 색이 그 함수의 중요도를 나타낸다
  2. B호출의 연쇄를 세로로 쌓아 올리고, 각 함수의 가로 폭이 그 함수(와 호출한 대상)에서 쓴 시간의 비율을 나타낸다
  3. C가로축은 프로그램을 실행한 날짜를 나타낸다
정답과 해설 보기

정답: B. 호출의 연쇄를 세로로 쌓아 올리고, 각 함수의 가로 폭이 그 함수(와 호출한 대상)에서 쓴 시간의 비율을 나타낸다

플레임 그래프는 아래에 호출한 쪽, 위에 호출된 쪽의 함수를 쌓아 올리고, 샘플링으로 기록된 횟수에 비례하는 폭으로 그립니다. 폭이 넓은 상자일수록 많은 시간을 쓰고 있습니다. 위에 아무것도 올라가 있지 않은 폭이 넓은 상자는 그 함수 자신이 시간을 쓰고 있음을, 위에 함수가 더 올라가 있으면 호출된 쪽에서 시간을 쓰고 있음을 나타냅니다. 어느 호출 경로가 무거운지 한눈에 찾을 수 있습니다.

  • A. 색은 대체로 구분하기 쉽게 하기 위한 것입니다.
  • B. 올바릅니다. 폭이 넓은 부분이 시간을 쓰고 있는 곳입니다.
  • C. 가로축은 시간의 비율이며 날짜가 아닙니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. CPU에 내장된 성능 카운터(PMU)로 셀 수 있는 것의 예로 올바른 것은?
  2. 성능 카운터로 측정했더니 어떤 프로그램의 IPC(1사이클당 명령어 수)가 0.3으로 매우 낮고, 마지막 단계 캐시의 미스가 많았다. 가장 가능성이 높은 상황과 대책의 조합은?
  3. 성능 카운터로 분기 예측 미스가 매우 많다는 것을 알았다. 개선 방법에 해당하는 것은?
  4. 성능 카운터를 사용한 톱다운 분석(Top-down Microarchitecture Analysis)에서 CPU의 명령어 처리 슬롯 사용 방식을 나누는 큰 분류로 올바른 것은?
  5. 프로그램이 느린데 CPU 사용률이 20% 정도로 낮았다. 가장 가능성이 높은 원인은?