我的代码的哪些部分运行时间最长、内存最多?我怎样才能找到需要改进的地方?”
在开发过程中,我很确定我们大多数人都会想知道这一点,在本文中总结了一些方法来监控 Python 代码的时间和内存使用情况。
本文将介绍4种方法,前3种方法提供时间信息,第4个方法可以获得内存使用情况。
-
time 模块
-
%%time 魔法命令
-
line_profiler
-
memory_profiler
1. time 模块
这是计算代码运行所需时间的最简单、最直接(但需要手动开发)的方法。他的逻辑也很简单:记录代码运行之前和之后的时间,计算时间之间的差异。这可以实现如下:
import time
start_time = time.time()
result = 5+2
end_time = time.time()
print('Time taken = {} sec'.format(end_time - start_time))
下面的例子显示了for循环和列表推导式在时间上的差异:
import time
# for loop vs. list comp
list_comp_start_time = time.time()
result = [i for i in range(0,1000000)]
list_comp_end_time = time.time()
print('Time taken for list comp = {} sec'.format(list_comp_end_time - list_comp_start_time))
result=[]
for_loop_start_time = ti