Jane Street가 공개한 magic-trace는 흔한 프로파일러가 아닙니다. 인텔 CPU에 내장된 Intel Processor Trace(IPT) 기능을 직접 끌어와, 프로세스가 실행한 모든 분기 명령을 사이클 단위로 기록합니다. perf top이 1ms마다 스택을 찍어 평균치를 그린다면, magic-trace는 분기 하나하나를 빠짐없이 캡처합니다. 그 결과 평균에는 묻히는 99/99.9 퍼센타일 꼬리 이벤트를 추적하는 데 강합니다.
진짜 영리한 부분은 워크플로입니다. 도구를 항상 켜둔 채로 IPT 링버퍼만 굴리다가, 사용자가 정의한 트리거(레이턴시 임계치, 시그널, 수동 명령)가 발동되는 순간 직전 약 10ms 분량의 실행 흐름을 덤프합니다. 'reproduce가 안 되는 가끔 한 번씩 느린 현상'을 사후에 되감기로 보는 셈입니다. HFT 시스템의 마이크로 글리치를 잡으려고 출발한 도구라는 출신 배경이, 이 디자인 한 군데에 다 들어 있습니다.
출력 포맷 선택도 결정적입니다. 자체 GUI를 만드는 대신 Perfetto/Chrome tracing 포맷으로 떨어뜨려, 브라우저에서 그대로 타임라인을 봅니다. 시간축 위에 함수 진입과 이탈, 분기 결과가 깔리는 화면은 flame graph가 보여주지 못하는 인과를 드러냅니다. 도구 하나 더 익힐 비용 없이 기존 웹 트레이스 UI 위에 얹은 판단이 사용성을 크게 끌어올립니다. OCaml로 작성됐지만 추적 대상은 언어 독립적입니다. 함수 심볼만 있으면 C/C++/Rust 바이너리도 똑같이 따라갑니다.
물론 비용은 정직하게 봐야 합니다. IPT가 있는 인텔 CPU에서만 동작하고, Apple Silicon이나 AMD에서는 못 씁니다. 리눅스 perf_event_paranoid 같은 커널 권한도 풀어줘야 하고, 인라이닝이 심하거나 심볼이 빠진 릴리즈 빌드에서는 콜그래프가 듬성해집니다. IPT 버퍼 크기 한계 때문에 장시간 추적보다는 짧은 윈도우 분석에 맞춰져 있습니다. 그래도 메트릭과 로그로는 도저히 잡히지 않는 'why is it sometimes slow' 부류의 문제를 가진 팀이라면, 명령어 레벨까지 시야를 내려볼 수 있는 거의 유일한 선택지입니다.