跳转到主要内容

线程感知分析器

项目描述

一个多线程感知的剖析包,其API类似于标准cProfile模块。由mtprof生成的剖析数据与由cProfile生成的数据格式相同,因此可以使用相同的工具(如pstatssnakeviz等)进行分析。

兼容性

需要Python 3,并且目前仅支持POSIX系统(Linux等)。

安装

这是一个纯Python包,因此通常可以在任何地方使用pip install mtprof

命令行界面

python -m mtprof 提供了一个类似于 python -m cProfile 的接口,并允许您对脚本、模块或整个应用程序进行剖析。

Python API

mtprof.Profile 类具有与 cProfile.Profile 相似的API。

限制

由于Python剖析的工作方式,mtprof只能利用生命周期为剖析器生命周期的子集的线程的剖析统计数据。在剖析开始之前启动的线程,或在剖析停止后结束的线程,无法收集其统计数据。

由于这个限制,可能更容易使用与cProfile类似的命令行界面:只需运行 python -m mtprof --help 即可查看可用的选项。

只有使用标准 threading.Thread 接口创建的线程被识别。对于大多数使用场景,这应该不会成为问题。

状态

此包是实验性的。