Python 运行时间
在很多的时候我们需要计算我们程序的性能,这个时候我们常常需要统计程序运行的时间。下面我们就来说说怎么统计程序的运行时间。
datetime
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #! /usr/bin/env python
# -*- coding:utf-8 -*-
import datetime
from functools import wraps
import logging
def run_time(func):
@wraps(func)
def __wrapper(*args, **kwargs):
logging.getLogger(__name__)
start = datetime.datetime.now()
ret = func(*args, **kwargs)
end = datetime.datetime.now()
logging.debug('running time: {}'.format(end-start))
return ret
return __wrapper
|
time.now
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #! /usr/bin/env python
# -*- coding:utf-8 -*-
import time
from functools import wraps
import logging
def run_time(func):
@wraps(func)
def __wrapper(*args, **kwargs):
logging.getLogger(__name__)
start = time.time()
start_2 = time.clock()
ret = func(*args, **kwargs)
end = time.time()
end_2 = time.clock()
logging.debug('running time: {}'.format(end-start))
logging.debug('running time2: {}'.format(end_2-start_2))
return ret
return __wrapper
|
timeit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #! /usr/bin/env python
# -*- coding:utf-8 -*-
import timeit
from functools import wraps
import logging
def run_time(func):
@wraps(func)
def __wrapper(*args, **kwargs):
logging.getLogger(__name__)
start = timeit.default_timer()
ret = func(*args, **kwargs)
end = timeit.default_timer()
logging.debug('running time: {}'.format(end-start))
return ret
return __wrapper
|
方法对比
- 方法二的精度比较高。方法一基本上是性能最差的。
- **uix 平台方法
datetime.now() 和 time.time() 都包含了其他程序使用CPU的时间。方法 time.clock() 只计算了程序运行CPU的时间。 - *nix 使用
time.time(),windows 使用 time.clock()。 - timeit 可跨平台,推荐使用