Новое для Python 3.2 - functools.lru_cache
. По умолчанию он кэширует только 128 последних вызовов, но вы можете установить maxsize
на None
, чтобы указать, что кеш никогда не истекает:
import functools
@functools.lru_cache(maxsize=None)
def fib(num):
if num < 2:
return num
else:
return fib(num-1) + fib(num-2)
Эта функция сама по себе очень медленно, попробуйте fib(36)
, и вам придется подождать около десяти секунд.
Добавление аннотации lru_cache
гарантирует, что если функция была вызвана в последнее время для определенного значения, она не будет компрометировать это значение, а использовать кешированный предыдущий результат. В этом случае это приводит к значительному улучшению скорости, в то время как код не загроможден деталями кеширования.
Это можно сделать с помощью оператора call sqlj.remove_jar( jar-id )
, как описано в Администрирование файла JAR на сервере базы данных .