背景
你好。我们编写的 Python 代码在我们无法控制的服务器上运行。我们不太了解代码运行的环境。如果我们的代码运行时间超过 3 秒,就会被拒绝。因此,我决定开始使用虚拟环境对我们的代码进行计时,以给出最坏情况下的运行时间估计。
Question
我惊讶地发现,在一个全新的虚拟环境中,仅仅导入 numpy 就需要 5 秒。有人可以解释为什么会这样吗?有什么技巧可以加快速度吗?对于一个基本的库来说,这么慢似乎令人望而却步。
重现步骤:
rm -r /tmp/env
virtualenv /tmp/env
/tmp/env/bin/pip install numpy
time /tmp/env/bin/python3 -c 'import numpy'
在我的高端笔记本电脑上它又回来了
real 0m5.534s
user 0m0.612s
sys 0m0.133s
请注意,由于我不清楚的原因,如果重复步骤#4而不返回步骤#1,时间会明显减少。即使你跑步,这种情况仍然存在,比如说,find /tmp -type d -name '__pycache__' -exec rm -r {} \;
第一的。一定是我不知道的其他类型的模块缓存?无论如何,这对我的目的来说并不重要,因为我无法控制远程服务器的缓存状态。
因为 numpy 太大了,第一次导入会花费很长时间,不仅加载所有这些文件,而且“编译” https://docs.python.org/3/tutorial/modules.html#compiled-python-files将它们全部放入 .pyc 中,一旦完成,将来的导入速度会更快。这就是为什么当你重新开始时,与只执行步骤#4而不返回步骤#1相比,需要花费很长时间
至于加快速度的技巧,看看pip install -h
the --compile
我认为选项应该可以解决问题...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)