python测试代码运行时间_检测Python程序执行效率及内存和CPU使用的7种方法

检测

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()

print

(

"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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值