Это, конечно, не MRU, но и не совсем LRU. Наличие cur
и old
создает впечатление, что вы пытаетесь использовать old
в качестве буфера выселения.
Однако способ управления cur
на самом деле не LRU или MRU - когда ваш кэш заполнен, вы сохраняете только новую запись, и выбрасывание всего остального содержимого в кэш выселения (old
). Обычно при добавлении записи размер кэша становится слишком большим, вы выбираете ровно одну существующую запись кэша, которую нужно выбросить (в буфер удаления, если вы его используете). Учитывая то, как вы выкидываете все это, я думаю, вы могли бы назвать это «не самым последним используемым кешем с буфером удаления».
Честно говоря, я думаю, что я , вероятно, использовал бы гораздо более короткое и простое имя: "ошибка". Я предполагаю, что могут быть некоторые обстоятельства, при которых это будет / будет / работать хорошо, но по крайней мере сразу это выглядит / звучит как довольно плохая идея.
Основная идея кеша заключается в том, что если что-то использовалось недавно, то, вероятно, оно скоро будет использовано снова. В этом случае, однако, вы (почти) очищаете весь кэш практически в произвольное время. Это может иметь смысл, если вы знаете лот о вашем доступе к данным и знаете, что вы склонны загружать N элементов данных и использовать их довольно долго, но когда вы загружаете элемент N +1, вы , вероятно, больше не будете использовать предыдущие N элементов, так что вы могли бы также очистить их все и восстановить для буфера выселения, если это было неправильно.