检测
Python
程序执行效率及内存和
CPU
使用的
7
种方法
在运行复杂的
Python
程序时,执行时间会很长,这时也许想提高程序的执行效率。但该怎么做呢?
首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长。接着,就针对这一部分进行优化。
同时,还需要控制内存和
CPU
的使用,这样可以在另一方面优化代码。
因此,在这篇文章中我将介绍
7
个不同的
Python
工具,来检查代码中函数的执行时间以及内存和
CPU
的使用。
1.
使用装饰器来衡量函数执行时间
有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import
time
from
functools
import
wraps
def
fn_timer(function):
@wraps(function)
def
function_timer(
*
args,
**
kwargs):
t0
=
time.time()
result
=
function(
*
args,
**
kwargs)
t1
=
time.time()
(
"Total time running %s: %s seconds"
%
(function.func_name,
str
(t1
-
t0))
)
return
result
return
function_timer
接着,将这个装饰器添加到需要测量的函数之前,如下所示:
1
2
3
@fn_timer
def
myfunction(...):
...
例如,这里检测一个函数排序含有
200
万个随机数字的数组所需的时间:
1
2
3
4
5
6
@fn_timer
def
random_sort(n):
return
sorted
([random.random()
for
i
in
range
(n)])
if
__name__
==
"__main__"
:
random_sort(
2000000
)
执行脚本时,会看到下面的结果:
1
Total time running random_sort: 1.41124916077 seconds
2.
使用
timeit
模块
另一种方法是使用
timeit
模块,用来计算平均时间消耗。
执行下面的脚本可以运行该模块。
1
$ python
-
m timeit
-
n
4
-
r
5
-
s
"import timing_functions"
"timing_functions.random_sort(2000000)"
这里的
timing_functions
是
Python
最后
以上就是孝顺小蘑菇最近收集整理的关于python测试代码运行时间_检测Python程序执行效率及内存和CPU使用的7种方法的全部内容,更多相关python测试代码运行时间_检测Python程序执行效率及内存和CPU使用内容请搜索靠谱客的其他文章。
发表评论 取消回复