fork download
  1. import timeit
  2.  
  3. print("Without cache")
  4.  
  5. setup = """
  6. def fib(n):
  7. if n < 2:
  8. return n
  9. return fib(n-1) + fib(n-2)
  10. """
  11.  
  12. t = timeit.timeit("fib(20)", setup, number=1000)
  13. print("time: " + str(t))
  14.  
  15.  
  16. print("With cache")
  17.  
  18. setup = """
  19. from functools import lru_cache as cache
  20.  
  21. @cache(maxsize=None)
  22. def fib(n):
  23. if n < 2:
  24. return n
  25. return fib(n-1) + fib(n-2)
  26. """
  27.  
  28. t = timeit.timeit("fib(20)", setup, number=1000)
  29. print("time: " + str(t))
  30.  
Success #stdin #stdout 2.32s 10680KB
stdin
Standard input is empty
stdout
Without cache
time: 2.309584209229797
With cache
time: 0.0005584652535617352