Мне нужно кэшировать результаты, чтобы сократить время вычислений.
В моем коде я использую foo
для вычисления y = foo(x)
для различных наборов параметров x
. В дополнение к различным параметрам x
, я также часто изменяю foo
.
Например, у меня есть одна версия foo
в ветке Git branch-1
и другая версия foo
в ветке Git branch-2
.
Я буду прыгать туда-сюда между этими ветками много раз в течение рабочего дня. Мне нужна библиотека для запоминания, которая кэширует результаты branch-1
и branch-2
отдельно, если foo
был вызван с другими параметрами или исходный код foo
отличается между branch-1
и branch-2
.
Другими словами, мне нужна библиотека со следующими функциями:
- Вычисления сохраняются в кеше.
- Вычисления не пересчитываются, если они находятся в кеше.
- Вычисления пересчитываются, если их нет в кэше или код, генерирующий их, обновлен.
- Результаты кэширования записываются на диск, поэтому они сохраняются при разных запусках моей программы.
- Результаты кеширования для устаревшего кода сохраняются на случай, если я верну код с помощью git.