Function Caching
Function Caching#
[1]:
import time
[3]:
def some_func(n):
time.sleep(n)
return n
[4]:
some_func(5)
[4]:
5
caching / memoization
[22]:
from functools import lru_cache
import datetime
@lru_cache(maxsize=3) ## latest 3 calls are saved
def some_func(n):
time.sleep(n)
return n
[23]:
start = datetime.datetime.now()
some_func(10)
end = datetime.datetime.now()
print("time taken at first ",end-start)
time taken at first 0:00:10.001500
[24]:
start = datetime.datetime.now()
some_func(10)
end = datetime.datetime.now()
print("time taken at second call ",end-start)
time taken at second call 0:00:00.000255
[ ]: