从“-ximporttime”跟踪生成瀑布。

importtime-waterfall的Python项目详细描述


Build Status

重要瀑布

通过-Ximporttime跟踪生成瀑布。

安装

pip install importtime-waterfall

noteimporttime-waterfall需要python3.7+

用法

importtime-waterfall提供同名的单个可执行文件。

importtime-waterfall将模块名作为位置参数。这是 将被分析的模块。

--include-interpreter-startup

包括始终作为 解释器启动。这些通常都不有趣,所以就留下来了 默认情况下不在。

--har

输出为HTTP Archive或“har”文件。是的,这些不是真的 http请求,但使用标准化的 数据格式。

不幸的是,har没有微秒的分辨率,所以在har中 输出为*1000(1μs=>;1毫秒)。

使用输出的最简单方法是将其粘贴到 har viewer

我使用以下选项:

$ importtime-waterfall importtime_waterfall --har | xclip -selection c

xclip获取输出并将其放入剪贴板。 或者,您可以重定向到一个文件(> foo.har)并以这种方式上传它。

一旦粘贴到查看器中,就可以检查输出。

阻塞的导入时间表示为“waiting”(紫色)和self time 表示为“接收”(灰色)。一般在寻找慢速模块时 找那些灰色大块的。

--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)

成功案例

我用这个找到一个24% speedup in ^{}'s startup

工作原理

importtime-waterfall在 设置^{}标志。importtime-waterfall接受 选择5个最佳(按总时间)并使用该结果。它解析 “导入时间:”行,然后输出。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpring重定向请求处理程序   SwingJava:拆分字符串并将其放入文本区域的   Java:标记“”上出现语法错误,此标记后面应为表达式   web服务Java RestService从日志文件写入和读取数据   java如何将ArrayList<String>转换为char数组,然后向后打印每个单词?   java SimpleDataFormat解析返回年终日期   加密Java aes解密bytebuffer,包括填充为空字节   java有没有办法从特定的if语句调用变量?   java从更新返回到渲染   spring GRPC Java登录测试   java为什么下面的代码不工作(StringBuffer.toString!=null)   java是一种可行的模式吗?   使用Spring集成测试的JavaOSGi片段   java jCommander为未知和未使用的值引发异常?   在imageView的editText中输入的java图像URL