跳转到主要内容

从 `-Ximporttime` 追踪生成瀑布图。

项目描述

Build Status

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 (5.5 kB 查看散列)

上传时间

构建分布

importtime_waterfall-1.0.0-py2.py3-none-any.whl (5.9 kB 查看散列)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面