如何确定导致库导入缓慢的原因?
Posted
技术标签:
【中文标题】如何确定导致库导入缓慢的原因?【英文标题】: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
是问题所在,因此您必须小心
看看***.com/questions/50554374/…。也许那里的提示可以帮助您入门。
有多长?毫秒/秒/分钟?您可以先在 __init__.py
中的每次导入之间打印一些内容,以粗略了解时间是如何花费的。
【参考方案1】:
它可能会在导入时进行昂贵的初始化,这可能被认为是错误的形式。无论哪种方式,您都可以使用 Python 的内置分析器进行查找:
import cProfiler
cProfiler.run('import supereeg')
输出在任何时候都不是最容易解析的,但可以让您了解正在发生的事情。有关如何存储/排序等报告的更多信息,请查看 https://docs.python.org/3.6/library/profile.html 的精美文档
【讨论】:
以上是关于如何确定导致库导入缓慢的原因?的主要内容,如果未能解决你的问题,请参考以下文章