위키득계정 ↗
기술

StackProf

StackProf기술
주요 대상
Ruby 프로그램
구현 형태
C 확장
측정 기준
경과 시간과 CPU 및 객체 할당
결과 형태
텍스트와 그래프 및 소스 주석
StackProf는 Ruby 프로그램의 호출 스택을 표본으로 수집하는 프로파일러다. 전체 경과 시간과 CPU 사용 및 객체 할당 등의 기준으로 관측하고 호출 관계와 코드 줄별 분포를 분석한다.

목적에 따라 고르는 표본

전체 흐른 시간을 기준으로 수집하거나 CPU가 동작한 시간에 맞춰 표본을 얻을 수 있다. 객체 생성 사건을 관측하는 모드와 사용자 정의 표본 기능도 제공한다. 간격을 조정해 관측의 세밀함과 실행 부담을 조절한다.

스택에서 호출 그래프까지

각 표본의 프레임별로 맨 위에 나타난 횟수와 스택 안에 포함된 횟수 및 코드 줄과 호출 대상의 정보를 집계한다. 이 자료를 모아 점진적인 호출 그래프를 만든다. 함수 자체의 비중과 하위 호출이 포함된 비중을 나누어 볼 수 있다.

수집 결과의 탐색

Ruby 코드 구간을 실행하며 결과를 얻거나 웹 응용의 미들웨어로 연결할 수 있다. 텍스트와 호출 그래프 및 소스 코드 주석 형태로 분석한다. 원시 표본을 추가 기록하면 플레임 그래프를 생성해 경로의 비중을 탐색할 수도 있다.

관련 문서

rbspy / Speedscope / 플레임 그래프 / Ruby / 프로파일링 / 가비지 컬렉션