Политика кэширования LRU: исключить наименее использованный в последнее время.Как нам этого добиться?Ну, это зависит от фактического алгоритма, но суть заключается в следующем.
Every node/key has an age bit.
When you access a key x, either get or put, you reset its age to 0.
Почему?Потому что x был последним использованным, и мы обозначаем это, устанавливая его возраст равным 0, указывая, что это похоже на ключ новорожденного.Более поздний, чем другие.
Но нам нужно сделать еще один шаг здесь.
Increment everyone's age except the one you recently accessed.
Это сделано для того, чтобы показать, что все остальные, кроме x , теперь старшечем их последний возраст.
Все, что остается выселить (если размер нарушен), это выселить ключ, возраст которого самый высокий.В вашем случае это будет 1025-й ключ.
In summary, it is the increment-all op that's really costly to implement.
Попробуйте увеличить размер кэша, и вы заметите лучшее время выполнения.Тем не менее, это всегда будет меньше, чем диктат.Реализация Dict () в Python - это хеш-таблица.