博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
装饰器做缓存
阅读量:5921 次
发布时间:2019-06-19

本文共 774 字,大约阅读时间需要 2 分钟。

#!/usr/bin/python

# coding: UTF-8
import datetime
import time
now = datetime.datetime.now
from functools import wraps
def cache(func):
caches = {}
@wraps(func)
def wrap(*args):
if args not in caches:
caches[args] = func(*args)
return caches[args]
return wrap
def fib(num):
if num < 2:
return 1
return fib(num-1) + fib(num-2)
fib_with_cache = cache(fib)
#start = now()
start=time.time()
for i in range(10):
fib(30)
#end=now()
end = time.time()
print "Fib without cache costs: %r" % (end - start)
start = time.time()
for i in range(10):
fib_with_cache(30)
end =time.time()
print "Fib with cache costs: %r" % (end - start)

 

 

==============

Fib without cache costs: 3.1489999294281006

Fib with cache costs: 0.30900001525878906

转载于:https://www.cnblogs.com/AmilyWilly/p/6862069.html

你可能感兴趣的文章
深入 HBase 架构解析(1)
查看>>
HorizontalScrollView
查看>>
XenServer 6.5实战系列之十:Create VMs from a VM Template
查看>>
python接口自动化测试(四)-Cookie&Sessinon
查看>>
C#进阶系列——WebApi 接口参数不再困惑:传参详解
查看>>
css中元素的定位:position
查看>>
异步编程
查看>>
[Android Pro] Gradle tip #3-Task顺序
查看>>
[GIT]
查看>>
Android -- View
查看>>
【oracle官网】 Restoring a Database on a New Host
查看>>
关于表联结方法_sort-merge join
查看>>
Vagrant基础简要记录
查看>>
Python探索记(09)——字符串(上)
查看>>
HDOJ 2028 Lowest Common Multiple Plus(n个数的最小公倍数)
查看>>
[20170518]不同事务能使用相同回滚段吗.txt
查看>>
物理卷操作命令:pvcreate,pvscan,pvdisplay.卷组操作命令:vgcreate,vgdisplay. (转)
查看>>
Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-2 创建熊猫类
查看>>
iptables设置时,要注意规则的顺序
查看>>
InputStream中read()与read(byte[] b)
查看>>