Python 统计代码运行时间
Python 运行时间
在很多的时候我们需要计算我们程序的性能,这个时候我们常常需要统计程序运行的时间。下面我们就来说说怎么统计程序的运行时间。
datetime
#! /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
#! /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
#! /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 可跨平台,推荐使用