【问题标题】:How to determine what is causing a library to import slowly?如何确定导致库导入缓慢的原因?
【发布时间】:2019-04-29 22:07:11
【问题描述】:

当我导入 Pandas 或 Numpy 时,它会立即导入,但是当我导入此处找到的库时

https://github.com/ContextLab/supereeg

导入需要很长时间。我正在更新自己的分叉副本,并希望减少加载所需的时间。我该如何诊断为什么需要这么长时间?

【问题讨论】:

  • 我将首先计算导入supereeg/__init__.py (github.com/ContextLab/supereeg/blob/master/supereeg/__init__.py) 中的每个模块需要多长时间,因为这就是您在执行import supereeg 时所调用的。但是,快速浏览一下,我看到这里的一些模块(例如 model.py 调用 from .brain import Brain 可能会诱使您认为 model.py 是问题所在,因此您必须小心
  • 看看stackoverflow.com/questions/50554374/…。也许那里的提示可以帮助您入门。
  • 有多长?毫秒/秒/分钟?您可以先在 __init__.py 中的每次导入之间打印一些内容,以粗略了解时间是如何花费的。

标签: python


【解决方案1】:

它可能会在导入时进行昂贵的初始化,这可能被认为是错误的形式。无论哪种方式,您都可以使用 Python 的内置分析器进行查找:

import cProfiler
cProfiler.run('import supereeg')

输出在任何时候都不是最容易解析的,但可以让您了解正在发生的事情。有关如何存储/排序等报告的更多信息,请查看 https://docs.python.org/3.6/library/profile.html 的精美文档

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多