文章基于Jupyter Notebook为环境,进行了Python代码运行时间和内存占用的测试
代码运行时间测试可以分为单行代码运行时间测试和多行代码(Jupyter中的单元格)运行时间测试两种。
参数:
-n 每次循环执行多少次代码
-r 共循环几次
-o输出结果
可以看到,执行np.linspace(0,100,100)
这行代码花费89.7us,1*100次执行的标准差为0ns
注意:执行次数越多,测试所得的时间越精确。
2. 多行代码(代码块)运行时间测试
%%timeit
命令
可以看到,执行In[6]
代码块花费1.12ms,7*1000次执行的标准差为178us
在Jupyter Notebook的单元格中运行!pip install memory_profiler
在下一个单元格中运行 !pip install psutil
安装好两个包后,打开Anaconda Prompt,执行activate 环境名
到自己的Jupyter 环境下(如果不确定自己有哪些环境的话,可以执行conda env list
查看)
在Anaconda Prompt下执行E:
,进入E盘(可以进入自己建立的环境),然后在E盘新建一个文件夹,例如我这里名字为testmemory
在该路径下新建一个记事本文件,在其中写入整个Python代码,将要测试内存的代码放在my_func()
函数内
import numpy as np
from scipy import signal,fft
from scipy.io import wavfile
@profile
def my_func():
np.linspace(0,100,100)
if name == ‘main’:
my_func()
然后保存记事本,名字为memorytest.py
(需要将后缀改为.py
)
7. 在Anaconda Prompt下执行python -m memory_profiler memorytest.py
,就可以看到运行内存了
将Anaconda Prompt执行命令改为终端下执行即可