当前位置: 首页 > 工具软件 > Py-Spy > 使用案例 >

查看python进程_[原创] 如何查看一个Python进程在”干什么”: py-spy 来帮忙 – 编码无悔 / Intent & Focused...

程枫
2023-12-01

如果你觉得一个运行中的Python程序有问题,例如它的耗时比你预想的要长很多,那么你可能会想知道它到底在“干什么”,有很多方法可以实现这个目的,但是很多都是需要修改Python代码来配合的,这显然是让人最不爽的方式。

而 py-spy 这个工具提供了一种无侵入的方式来达成这个目的:

py-spy是Python程序的采样分析器。 它使你可以直观地看到Python程序花费的时间,而无需重新启动程序或以任何方式修改代码。 py-spy的开销非常低:为了提高速度,它是用Rust编写的,并且它与被分析的Python程序不在同一进程中运行。 这意味着py-spy可以安全地用于生产环境的Python代码。

py-spy 的工作原理:在Linux上使用process_vm_readv系统调用,在OSX上使用vm_read,在Windows上使用ReadProcessMemory来直接读取Python程序的内存。

下面就来看看怎么把 py-spy 用起来。

环境:Ubuntu 16.04 LTS,Python 3.6.9

▶ 安装 py-spy

最简单的方法是用 pip 安装:

pip install py-spy

但对我来说,我是在Anaconda环境下使用Python,所以我不想这样干。Anaconda cloud上面没有Linux版的 py-spy,于是我最省力的办法,就是用Rust的包管理工具 Cargo 来安装 py-spy 了。

 类似资料: