用于 CPython 的帧堆栈采样器
概要 • 安装 • 使用 • 备忘单 • 兼容性 • 为什么选择编辑Austin • 示例 • 贡献
这是我发现的最好的 Python 分析器。它是跨平台的,不需要我更改正在分析的代码,并且它的输出可以直接通过管道传输到flamegraph.pl
。我刚刚用它来找出工作中 SQLAlchemy 的严重滥用,这种滥用在每天结束时都会在代码中运行,现在我可以早点回家了。——
gthm on lobste.rs
如果人们正在寻找分析器,Austin 看起来很酷。快来看看吧!
——Michael Kennedy 在Python Bytes 180上
概要
Austin 是一个用纯 C 编写的 CPython Python 框架堆栈采样器。通过读取 CPython 解释器虚拟内存空间来收集样本,以检索有关当前正在运行的线程以及正在执行的框架堆栈的信息。因此,可以使用 Austin 轻松制作强大的统计分析器,这些分析器对目标应用程序的影响最小,并且不需要任何仪器。
奥斯汀的主要特点是:
- 零仪表;
- 影响最小;
- 快速且轻便;
- 时间和内存分析;
- 内置对多进程应用程序的支持(例如
mod_wsgi
)。
将 Austin 变成功能齐全的分析器的最简单方法是与VS Code 扩展一起使用,或将其与FlameGraph或Speedscope结合使用。但是,Austin 的简单输出格式可以传输到任何其他外部或自定义工具中进行进一步处理。例如,查看以下 Python TUI
请参阅Peter Norton 撰写的《开源 Python 分析器调查》 以获得有关 Austin 的总体概述。
继续阅读以获取更多工具创意和示例!
💜
Austin 是一个免费的开源项目。我们投入了大量精力来开发它,以确保最佳性能并与最新的 Python 版本保持同步。如果您觉得它有用,请考虑赞助这个项目
。🙏
安装
Austin 可从PyPI和最流行平台的主要软件存储库安装。查看最新发布页面,了解预编译的二进制文件和安装包。
在所有支持的平台和架构上,Austin 可以通过 PyPI 安装,pip
或者pipx
通过命令
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>pip install austin-dist
</code></span></span></span></span>
或者
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>pipx install austin-dist
</code></span></span></span></span>
在 Linux 上,可以使用Snap Storeautotools
或 snap 进行安装。后者将使用单个命令自动执行方法的步骤。在 Debian 派生的发行版上,可以使用 Aptitude 从官方存储库安装 Austin。Anaconda 用户可以从Conda Forge安装 Austin 。autotools
在 Windows 上,可以使用Chocolatey或Scoop从命令行轻松安装 Austin 。或者,您可以从最新发布页面下载安装程序 。
在 macOS 上,可以使用Homebrew从命令行轻松安装 Austin。Anaconda用户可以从Conda Forge安装 Austin 。
对于任何其他平台,从源代码编译 Austin 就像克隆存储库并运行 C 编译器一样简单。发布页面有许多预编译的二进制文件,可以解压并使用。
和autotools
使用 安装 Austinautotools
相当于通常的./configure
和手指体操。唯一的依赖项是标准 C 库。在继续以下步骤之前,请确保您的系统上安装了。有关如何执行此操作的详细信息,请参阅您的发行make
版 的文档。make install
autotools
git clone --depth=1 https://github.com/P403n1x87/austin.git && cd austin
autoreconf --install
./configure
make
make install