设定Python汇入时间

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)

围绕每个模块,但是它没有递归地对其进行分析,以查看导入中的哪个导入可能会浪费时间。

Rég*_* B. 6

这是一个完全合法的问题。例如,尝试加速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)

  • 这些数字的单位是什么?文档中没有提到。 (3认同)