从“-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第三方库


热门话题
在java中的字符串字符下打印星号(*)   java在比较数据后得到错误的结果   java如何在使用JSP创建的网站中创建父子关系和处理?   java配置单元UDF:无法执行求值方法   java GAE项目Intellij远程调试在关闭时不释放端口   java按钮上的放大和缩小功能点击JfreeChart折线图?   java Selenium Chrome Web驱动程序SessionNotCreatedException   java由ADFactoryBuilder生成的线程工厂是线程安全的吗?   java将字符串[]传递给另一个类Android(使用intent)   我为什么要嘲笑java?   JavaLiferay门户不将对象从流程阶段发送到jsp   java我想在单击每个树节点时将要添加的信息放入jpanel jscrollpane中   在Java中模拟数组引用(即对引用的引用)的按引用传递   Jackson将JSON属性反序列化为不同的Java对象   java使用JSP/servlet在网页上显示Excel工作表?   仿射变换Java:使用仿射变换时游戏速度减慢   Servlet JBoss AS 7的java EJB注入   在Oracle数据库中使用Java的plsql   java管理Maven项目中的库依赖项   JavaEclipseLink(JPA)异常:复合主键@JoinColumn