이번 글을 비교적 짧게 작성되었는데, 하고 싶었던 게 고작 이 flamegraph를 보여드리기 위해서입니다. 수강하고 있는 프로그래밍 경시대회 코스에 문제들 중 하나를 뽑아 한번 프로파일링을 돌려봤습니다:
(참고: SVG 파일 안에 내용물과 상호작용이 가능하지만 사진을 우클릭한 후 새 탭에서 열어야 정상적으로 동작합니다!)
flamegraph 보기 너무 좋아요
참고: 윈도우에서 cargo flamegraph
를 실행하기 위해선 사전 준비가 약간 필요합니다.
bcdedit /set dtrace on
을 실행해 dtrace
기능을 키세요.dtrace
레포지터리에서 설치 프로그램을 다운로드한 후 실행하세요._NT_SYMBOL_PATH
시스템 환경 변수를 다음과 같이 설정하세요 (왜 이 값인지는 여기를 참고하세요):srv*c:\symbols*https://msdl.microsoft.com/download/symbols
리눅스 상에선 커널 버전에 맞는 linux-tools
패키지들을 필요로 합니다. 전 NixOS를 쓰기 때문에, nix shell nixpkgs#linuxKernel.packages.linux_latest_libre.perf
을 실행하여 flamegraph-rs
가 필수로 요구하는 perf
패키지만을 설치했습니다. (libre
부분은 왜 있는지 모르겠지만 그게 안 적혀있는 패키지들을 없더라고요…) 자세한 정보는 디스트로에 맞는 설명을 위해 공식 README의 설치 부분을 참고하세요.