성능 분석

프로그램 성능을 개선할 때의 진행 방식으로 가장 적절한 것은?

  1. A먼저 측정하여 시간을 쓰는 곳을 찾고, 그곳을 개선한 뒤, 개선 후에 다시 측정하여 효과를 확인한다
  2. B느릴 것 같은 곳을 짐작하여 측정하지 않고 고쳐 쓴다
  3. C모든 함수를 똑같이 최적화한다
정답과 해설 보기

정답: A. 먼저 측정하여 시간을 쓰는 곳을 찾고, 그곳을 개선한 뒤, 개선 후에 다시 측정하여 효과를 확인한다

어디가 느린지에 대한 짐작은 경험 있는 사람도 자주 빗나갑니다. 먼저 프로파일러나 성능 카운터로 측정하여 시간을 많이 쓰는 곳과 그 원인(계산, 메모리, 분기, 입출력 등)을 밝혀냅니다. 개선을 가한 뒤에는 다시 같은 조건에서 측정하여 정말 빨라졌는지, 다른 부분이 느려지지 않았는지 확인합니다. 이 반복이 확실하게 성능을 높이는 방법입니다.

  • A. 올바릅니다. 측정, 개선, 확인을 반복합니다.
  • B. 짐작은 빗나가는 경우가 많습니다.
  • C. 시간을 쓰지 않는 부분의 최적화는 효과가 없습니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. 대량의 데이터를 처리하는 프로그램에서 가장 큰 속도 향상을 얻을 가능성이 높은 개선은?
  2. 소프트웨어 개발에서 변경할 때마다 벤치마크를 자동으로 실행하고 결과를 기록해 두는 목적으로 올바른 것은?
  3. 노트북에서 벤치마크를 측정했더니 같은 프로그램인데도 결과가 매번 크게 흔들렸다. CPU 측 원인으로 생각되는 것과 그 대책의 조합으로 올바른 것은?
  4. 멀티코어나 NUMA 시스템에서 성능을 측정할 때 스레드를 특정 코어에 고정(어피니티 설정)하는 경우가 있는 이유로 올바른 것은?
  5. GPU를 사용하는 프로그램의 성능을 분석할 때 가장 먼저 확인해야 할 것으로 가장 적절한 것은?