从 `-Ximporttime` 追踪生成瀑布图。
项目描述
importtime-waterfall
从 -Ximporttime
追踪生成瀑布图。
安装
pip install importtime-waterfall
注意:importtime-waterfall
需要 python3.7+
用法
importtime-waterfall
提供与同一名称的单个可执行文件。
importtime-waterfall
将模块名称作为位置参数。这是将被分析的项目。
--include-interpreter-startup
包含解释器启动过程中始终导入的模块的跟踪信息。这些通常不太有趣,因此默认情况下被省略。
--har
以 HTTP Archive 或 "HAR" 文件输出。是的,这不是实际的HTTP请求,但它是一种使用标准数据格式获取可视化的简单方法。
HAR不幸没有微秒分辨率,因此HAR输出中的所有时间都 * 1000(1 μs => 1ms)。
使用输出的最简单方法是将其粘贴到 har查看器。
我使用以下
$ importtime-waterfall importtime_waterfall --har | xclip -selection c
xclip 将输出放在剪贴板上。或者,您可以将其重定向到文件(> foo.har
)并以此方式上传。
一旦粘贴到查看器中,您就可以检查输出。
阻塞的导入时间表示为“等待”(紫色),而自我时间表示为“接收”(灰色)。一般来说,当寻找慢速模块时,寻找灰色块较大的模块。
--graph
(这是默认显示)。以树的形式显示输出。这并没有在 python -Ximporttime
已显示的内容上增加太多(但用于开发/调试此工具是有用的)。我想它在人类顺序中而不是相反,所以是些什么 🤷。
模块名称旁边的显示次数为自计时,单位为μs。
$ importtime-waterfall importtime_waterfall
importtime_waterfall (419)
argparse (864)
re (599)
enum (661)
sre_compile (270)
_sre (109)
sre_parse (336)
sre_constants (339)
copyreg (161)
gettext (1056)
locale (820)
datetime (768)
time (234)
math (57)
_datetime (154)
json (254)
json.decoder (446)
json.scanner (481)
_json (193)
json.encoder (443)
subprocess (628)
signal (1030)
errno (101)
_posixsubprocess (40)
select (51)
selectors (543)
collections.abc (184)
threading (578)
traceback (394)
linecache (162)
tokenize (911)
token (178)
_weakrefset (217)
typing (1469)
成功案例
我使用这个找到了在flake8
启动中的24%速度提升。[链接](https://gitlab.com/pycqa/flake8/merge_requests/250)
工作原理细节
importtime-waterfall
在子进程中导入被分析模块,同时设置-Ximporttime
标志。importtime-waterfall
选择前5个最佳(按总时间计算)并使用该结果。它解析“导入时间:”行,然后输出。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
importtime_waterfall-1.0.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8140eb8e1774a39d426df82220f36b17d78ccbbba2adc75466979a315395f391 |
|
MD5 | c4d5ce5ed6b378767c76a52c6cefaa8e |
|
BLAKE2b-256 | 0cf80d33c4d69344cb55116a656ef103b499f69a5f33f748ac0cd32c297cc955 |
importtime_waterfall-1.0.0-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | e65dbc4d23f0fd698ca3e8cfe767937b86f697e11790ac672aa86109792b3595 |
|
MD5 | c098b7e16e891df652881933bd63278b |
|
BLAKE2b-256 | 1d5ca299cf9f5748cc13f506934e2fa3ea5bbc9584946c0a773dc5104cb770f2 |