【发布时间】:2021-10-14 22:10:27
【问题描述】:
背景
你好。我们编写在我们无法控制的服务器上运行的 Python 代码。我们对代码运行的环境了解不多。如果运行时间超过 3 秒,我们的代码就会被拒绝。所以我决定开始使用虚拟环境对我们的代码进行计时,以给出最坏情况下的运行时估计。
问题
我惊讶地发现,在一个全新的虚拟环境中,只需 5 秒就可以导入 numpy.有人可以解释为什么会这样吗?有什么技巧可以加快速度吗?一个基本库这么慢似乎令人望而却步。
重现步骤:
rm -r /tmp/envvirtualenv /tmp/env/tmp/env/bin/pip install numpytime /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 {} \;,这种情况仍然存在。它一定是我不知道的其他类型的模块缓存吗?反正对我来说没关系,因为我无法控制远程服务器的缓存状态。
【问题讨论】:
-
"basic library" 没有什么关于 numpy 的“基本”,是一个非常大的库,整个文件夹是 55mb
-
嗯...我无法在我的机器上重现缓慢,而且速度相对较慢。但我使用了
venv而不是virtualenv- 不确定这是否会有所不同。你使用的是什么版本的 Python?我正在使用 3.9.7。 -
@wjandrea,感谢您尝试复制。我正在使用 python 3.7.3。我尝试用
python3 -m venv /tmp/env替换步骤 2 来尝试 venv,但没有发现差异。
标签: python numpy virtualenv