开源的追踪与性能分析套件,包含 SDK、守护进程和浏览器端 UI,用于分析 Android、Linux 等系统的 trace。
janestreet/magic-trace
基于 Intel Processor Trace 的 Linux 性能追踪工具,可记录进程的每一次函数调用并以时间线展示。
- Star
- 6,347
- Fork
- 223
- 未关闭 Issue
- 73
- 最近提交
- 19天前
这是什么?
magic-trace 用于采集并展示进程运行过程的高精度追踪数据。它不像 perf 那样按时间间隔采样调用栈,而是借助 Intel Processor Trace 记录全部控制流,保存在环形缓冲区中,并在选定时刻截取快照,重建出约 10 毫秒内的调用栈时间线,函数调用分辨率约为 40 纳秒。
可以对运行中的进程使用 attach 命令,按 Ctrl+C 结束时输出快照;也可以通过 -trigger 参数指定函数,每当程序调用该函数时自动截取快照。生成的 trace.fxt.gz 文件可在 magic-trace.org 网页中打开查看,该页面基于 Perfetto 修改,完全在浏览器中运行。无需修改应用代码,开销约为 2%-10%。
运行环境要求为 Intel Skylake 或更新的 CPU,仅支持 Linux,多数虚拟机不受支持。
核心功能
- 01以约 40 纳秒的分辨率记录进程中的每一次函数调用。
- 02利用 Intel Processor Trace 截取控制流环形缓冲区快照,而非采样。
- 03无需修改应用代码,即可挂载到正在运行的进程上。
- 04支持在指定函数被调用时或退出时触发快照。
- 05追踪文件在浏览器中查看,不会上传到外部服务器。
适用场景
- 排查生产环境中少数请求变慢的原因。
- 确认热点路径上代码实际执行的情况,而非凭经验猜测。
- 回溯程序崩溃前的一系列函数调用。
- 分析长时间运行程序中某个调度周期或垃圾回收过程的具体行为。
快速上手
- 1
从最新发布页面下载发布版二进制文件或安装包
- 2
为预编译二进制文件添加可执行权限
chmod +x magic-trace - 3
安装下载的 .deb 安装包
sudo dpkg -i magic-trace*.deb - 4
运行帮助命令检查安装是否成功
magic-trace -help
使用前须知
- 仅支持 Linux,且需要 Intel CPU(Skylake 或更新型号)。
- 大多数虚拟机不受支持。
收录于专题
标签
常见问题
- magic-trace 是什么?
- 基于 Intel Processor Trace 的 Linux 性能追踪工具,可记录进程的每一次函数调用并以时间线展示。 magic-trace 用于采集并展示进程运行过程的高精度追踪数据。它不像 perf 那样按时间间隔采样调用栈,而是借助 Intel Processor Trace 记录全部控制流,保存在环形缓冲区中,并在选定时刻截取快照,重建出约 10 毫秒内的调用栈时间线,函数调用分辨率约为 40 纳秒。
- magic-trace 可以免费使用吗?用的什么许可证?
- magic-trace 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- magic-trace 还在维护吗?
- 活跃维护中。magic-trace 最近一次提交是在 2026年10月19日。
- magic-trace 适合用来做什么?
- 排查生产环境中少数请求变慢的原因。 确认热点路径上代码实际执行的情况,而非凭经验猜测。 回溯程序崩溃前的一系列函数调用。 分析长时间运行程序中某个调度周期或垃圾回收过程的具体行为。
- magic-trace 怎么安装和运行?
- 从最新发布页面下载发布版二进制文件或安装包 为预编译二进制文件添加可执行权限: chmod +x magic-trace 安装下载的 .deb 安装包: sudo dpkg -i magic-trace*.deb 运行帮助命令检查安装是否成功: magic-trace -help
- 在哪里获取 magic-trace?
- 源代码和安装说明在 GitHub 上:https://github.com/janestreet/magic-trace
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
将 eBPF 程序打包为 OCI 镜像 Gadget,用于在 Kubernetes 集群和 Linux 主机上采集与检查系统数据的工具集。
一款低开销的 Python 追踪工具,将代码执行过程记录并以交互式时间线可视化。
Python 调用栈性能分析器,帮你找出代码慢在哪里,支持控制台与 HTML 等多种输出。
轻量级遥测守护进程,导出 Linux、CPU、GPU 指标,并可为 PyTorch 分布式训练触发按需追踪。
面向 Linux 的高级追踪语言与工具,基于 eBPF 实现低开销的内核与用户态事件追踪。