你是否曾为线上服务偶发的毫秒级延迟抓狂?是否在调试崩溃时,只看到最后一行堆栈,却完全不知道程序崩溃前 500 毫秒究竟执行了什么指令、访问了哪些内存、触发了哪些系统调用?magic-trace 正是为此而生——它不是传统意义上的 profiler,而是一台运行在 x86/Linux 上的“进程行为显微镜”,能在近乎无感的开销下(仅 2%–10%),捕获进程每一纳秒级的真实执行轨迹,帮你看见代码“真正做了什么”,而非“你以为它做了什么”。
核心功能
- 全指令级高保真追踪:基于 Intel Processor Trace(PT)硬件特性,直接捕获 CPU 执行的每一条分支指令流,精度达纳秒级,远超 perf 或 eBPF 的采样粒度。
- 零侵入式分析:无需修改目标程序、无需重新编译、无需注入符号或调试信息,对任意用户态二进制(包括 OCaml、Rust、C/C++ 等生成的可执行文件)开箱即用。
- 崩溃前行为回溯:自动保存崩溃前数秒的完整执行轨迹,配合可视化时间轴,可清晰还原死锁、空指针解引用、内存越界等故障发生前的完整调用链与寄存器状态。
- 请求级性能归因:支持按 HTTP 请求 ID、RPC 跟踪号等业务标识打标,精准定位某次慢请求的耗时热点(比如某次数据库查询卡在内核页回收上),彻底告别“平均延迟正常但个别请求超时”的排查困境。
- 交互式可视化探索:内置 Web 可视化界面(无需额外部署),支持缩放、过滤、着色标记、跨线程/进程关联,将百万级指令轨迹转化为直观的时间线与调用图谱。
- 低开销生产就绪:实测在典型服务负载下仅引入 2%–10% 性能损耗,已通过 Jane Street 高频交易系统严苛验证,可长期开启用于关键服务监控。
适合哪些人用
如果你是:后端性能工程师(排查 P99 延迟毛刺)、SRE/运维专家(诊断线上偶发崩溃与资源争用)、系统程序员(深入理解 glibc 调度、内核路径、JIT 行为)、安全研究员(分析可疑进程行为或漏洞利用链),或是任何需要“看见真实执行流”而非依赖日志与猜测的技术人员——magic-trace 就是你工具箱里那把最锋利的解剖刀。
快速上手
当前仅支持 Linux x86_64(需 Intel CPU 支持 PT,推荐 Skylake 及更新型号)。安装只需三步:
- 确保内核启用 PT 支持:
echo 1 | sudo tee /sys/bus/event_source/devices/intel_pt/format/psb(首次需 root) - 通过 OPAM 安装(推荐):
opam install magic-trace;或从 GitHub Releases 下载预编译二进制 - 启动追踪:
magic-trace record --pid $(pgrep my-server) --duration 30s,随后用magic-trace view trace.mt启动浏览器可视化界面
支持命令行过滤(如 --filter 'main.*')、导出 JSON/CSV、以及与 Prometheus 等监控系统集成。
项目信息
magic-trace collects and displays high-resolution traces of what a process is doing
5.8k
今日 +70 stars today
Stars
179
Forks
OCaml
MIT
编程语言:OCaml|GitHub Star 数:5786|开源协议:MIT|GitHub 项目地址
当你的性能瓶颈藏在采样盲区、当崩溃现场只剩残缺堆栈、当你需要确信“代码真的按预期执行”——magic-trace 不是另一个 profiler,而是让你第一次真正看清机器在做什么的真相之窗。





