У меня есть приложение С#, которое обрабатывает около 10 000 неизменяемых объектов, каждый объект имеет размер 50 КБ - 1 МБ. Приложение выбирает около 10-100 объектов для каждой операции. Выбор объектов зависит от обстоятельств и выбора пользователя, но некоторые из них используются очень часто.
Хранить все объекты в памяти все время слишком сложно, но время доступа к диску требует времени. Я хотел бы использовать кеш на основе популярности, чтобы уменьшить активность диска. Кэш будет содержать макс. 300 объектов. Я ожидаю, что во время использования шаблоны решают, какой из них следует кэшировать. Я могу легко добавить счетчик доступа к каждому объекту. Более популярные попадают, менее популярные должны покинуть кеш. Есть ли простой и оригинальный способ сделать это без кодирования моей задницы?