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
[ ]: