Я делаю просмотрщик документов для некоторого формата документа. Чтобы это стало проще, скажем, это программа просмотра PDF, Настольное приложение. Одним из требований к программному обеспечению является скорость рендеринга. Итак, прямо сейчас я кэширую изображение для следующих страниц, пока пользователь прокручивает документ.
Это работает, пользовательский интерфейс очень отзывчив, и кажется, что приложение может мгновенно отображать страницы... по цене: использование памяти иногда идет до 600 МБ. Я кэширую все это в памяти.
Теперь я могу кэшировать диск, я знаю, но делать это все время заметно медленнее. То, что я хотел бы сделать, это реализовать некоторый кеш (LRU?), Где некоторые из кэшированных страниц (объектов изображения) находятся в памяти, и большинство из них находятся на диске.
Прежде чем приступить к этому, есть ли что-то в рамках или какая-то библиотека, которая сделает это для меня? Это кажется довольно распространенной проблемой. (Это настольное приложение, а не ASP.NET)
В качестве альтернативы, есть ли у вас другие идеи для этой проблемы?