And*_*yen 9 python profiling python-import
有没有办法找出Python中导入时间最长的导入?查看的输出python -m cProfile <script>,它似乎没有包含import语句(可以理解的是,它可能具有巨大的依赖树)。最初,我以为看到了一行就__import__()可以了,但是我认为这实际上可能是因为某处的代码正在显式调用它,只有import语句的玩具程序没有一行。
现在我正在使用:
start = time.time()
import <module>
print '%s / time: %f' % (<module>, time.time()-start)
Run Code Online (Sandbox Code Playgroud)
围绕每个模块,但是它没有递归地对其进行分析,以查看导入中的哪个导入可能会浪费时间。
这是一个完全合法的问题。例如,尝试加速CLI应用程序的冷启动是有意义的。Python 3.7现在提供了一个用于打印导入时间的选项:https : //docs.python.org/3/using/cmdline.html#envvar-PYTHONPROFILEIMPORTTIME
您可以运行:
python -X importttime myscript.py
Run Code Online (Sandbox Code Playgroud)
要么:
PYTHONPROFILEIMPORTTIME=1 myscript.py
Run Code Online (Sandbox Code Playgroud)