Python中統計函數的運行耗時


import time

def time_me(fn):
    def _wrapper(*args, **kwargs):
        start = time.clock()
        fn(*args, **kwargs)
        print "%s cost %s second"%(fn.__name__, time.clock() - start)
    return _wrapper

#這個裝飾器可以在方便地統計函數運行的耗時。用來分析腳本的性能是最好不過了。
#這樣用:
@time_me
def test(x, y):
    time.sleep(0.1)

@time_me
def test2(x):
    time.sleep(0.2)

test(1, 2)
test2(2)

#輸出:
#test cost 0.1001529524 second
#test2 cost 0.199968431742 second

 

另一個更高級一點的版本是:

import time
import functools

def time_me(info="used"):
    def _time_me(fn):
        @functools.wraps(fn)
        def _wrapper(*args, **kwargs):
            start = time.clock()
            fn(*args, **kwargs)
            print "%s %s %s"%(fn.__name__, info, time.clock() - start), "second"
        return _wrapper
    return _time_me

@time_me()
def test(x, y):
    time.sleep(0.1)

@time_me("cost")
def test2(x):
    time.sleep(0.2)

test(1, 2)
test2(2)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM