컴파일러 오류 성능 프로파일링 도구 결
컴파일러 오류와 성능 문제를 디버깅할 때 가장 먼저 하는 것은 오류 메시지를 그대로 읽는 것입니다. 처음에는 오류 메시지를 보고 바로 검색부터 하는 경우가 많았는데, 메시지를 충분히 읽으면 원인 위치가 이미 포함되어 있는 경우가 많았습니다. C++ 프로젝트에서 템플릿 오류 메시지가 수십 줄로 출력될 때는 맨 아래의 오리지널 오류를 먼저 보는 방법을 배웠습니다.
valgrind로 메모리 관련 오류를 잡고, gprof로 함수별 실행 시간을 측정해 병목 지점을 찾는 방식을 실습했습니다. 성능 개선에서 가장 효과적이었던 것은 루프 내 불필요한 메모리 할당을 줄이는 것이었는데, 프로파일링 결과 특정 함수에서 전체 시간의 70%를 쓰는 것을 발견했습니다. 한계는 멀티스레드 환경에서 발생하는 경쟁 조건은 재현이 어려워 디버깅에 시간이 오래 걸린다는 점입니다. 디버깅은 추측보다 측정이 먼저라는 것이 결임을 배웠습니다.