2026 年的 Python 性能剖析:标准库新兵与四个采样器
来源:p403n1x87.github.io — 2026-11
📋 概述
Python 剖析这两年变化比过去十年都大:CPython 3.14 给了外部工具官方的查看入口,3.15 把采样剖析器 Tachyon 放进标准库,自由线程构建开始真上生产,而读 profile 的「人」里越来越多是编码 agent。作者做了八年 Austin,用内部视角梳理四个采样剖析器的分工:Tachyon(标准库、进程外采样)、py-spy(老牌进程外采样)、Scalene(进程内全能选手)、Austin(进程外、速度优先)。核心论据是采样率决定精度:误差按 1 除以样本数的平方根收缩,采样快十倍噪声少三倍;UMass 的对比研究显示采样器开销 0 到 2%,而 cProfile 达 73%。
🔑 核心要点
- 两条分水岭决定工具差异:追踪还是采样、进程内还是进程外。
- 追踪剖析器慢且慢得不均匀,会歪曲时间分布——某追踪器把实际 25% 的函数报成 80%。
- UMass 在 pyperformance 长基准上的结论:采样器既更高效也更准;Austin、py-spy、Scalene 开销 0 到 2%,cProfile 73%,另一些超过 200%。
- 采样率直接决定精度,误差与样本数的平方根成反比;Austin 4.1 默认每秒一万个样本。
- Tachyon 命名自超光速粒子,采样核心用 C 写,默认每秒一千样本但设计上可大幅提高。
- pyflame 已归档不再维护,但它是第一批从进程外采样 Python 栈的工具。
💡 金句
追踪剖析器让程序变慢,而且慢得不均匀,这会歪曲「时间到底花在哪」的图景。
👍 0
👎 0
← 返回 Lobsters 首页