위키득계정 ↗
기술

플레임 그래프

플레임 그래프기술
영어 이름
Flame Graph
표현 대상
계층적인 호출 스택
세로축
스택 깊이
너비의 의미
표본에서 차지하는 비중
플레임 그래프는 프로파일의 호출 스택을 사각형의 계층과 너비로 표현하는 시각화다. 자주 나타나는 호출 경로를 모아 보여 주며 일반적인 형태의 가로 위치는 시간 순서를 뜻하지 않는다.

프레임과 호출의 계층

사각형 하나는 스택 프레임을 나타내고 세로 방향으로 호출 깊이를 표현한다. CPU 표본의 그래프에서는 맨 위쪽 경계가 당시 실행 중인 프레임이고 그 아래는 해당 프레임을 호출한 경로다. 같은 경로의 비중이 클수록 넓게 보인다.

시간축과 구분하는 읽기

일반적인 플레임 그래프는 스택을 모아 정렬하므로 가로축을 실행 시점으로 읽으면 안 된다. 시간 순서대로 배치하는 플레임 차트는 다른 정보를 보여 준다. 넓은 프레임은 많이 관측되었다는 뜻이며 색은 기본 형태에서 이웃 프레임을 구분하기 위한 장식일 수 있다.

탐색과 적용 범위

확대와 검색으로 특정 호출 경로의 비중을 살필 수 있다. CPU 표본뿐 아니라 메모리 할당 등 스택과 가중치가 있는 계층 자료에도 활용한다. 스택을 수집하는 프로파일러와 그 기록을 그래프로 만드는 도구를 조합해 사용할 수 있다.

관련 문서

Speedscope / py-spy / Memray / Tracy 프로파일러 / Callgrind / 프로파일링