Кэш приложений .NET против кэша базы данных

2

Создаем галерею изображений, которая читает файл с диска, создает эскизы "на лету" и представляет их пользователю. Это работает хорошо, за исключением того, что обработка занимает немного времени.

Затем я решил кэшировать обработанные изображения с помощью кэша приложений ASP.NET. Когда изображение обрабатывается, я добавляю поток байта [] в кеш. Насколько я знаю, это сохраняется в системной памяти. И это работает отлично, загрузка страницы происходит намного быстрее.

Мой вопрос в том, есть ли тысячи изображений, которые будут кэшироваться в кэш приложения, повлияет ли это на производительность сервера?

Существуют ли другие способы улучшения кэширования изображений?

  • 2
    Какая часть вопроса о кеше базы данных?
  • 0
    Я подумал, что, возможно, будет эффективнее хранить его в базе данных, а не в кеше приложения. Просто мысль, которую я хотел добавить в микс.
Теги:
caching

3 ответа

5
Лучший ответ

По умолчанию Application Cache хранит данные на сервере; в зависимости от шаблона навигации на вашем веб-сайте, возможно, вы не получите слишком много кеш-запросов.

Вы можете предварительно обработать все изображения для создания своих эскизов сразу и сохранить их с исходным изображением. Таким образом, вам не нужно иметь дело с этим уровнем кэша и, вероятно, не займет слишком много места на диске.

  • 0
    Я думаю, что это должен был быть комментарий, а не фактический ответ.
  • 0
    Определенно, создавайте эскизы по мере загрузки изображений. Это гораздо менее интенсивно, чем постоянное создание миниатюр, и не будет занимать много места, если они будут оптимизированы должным образом.
Показать ещё 6 комментариев
1

Это зависит от того, сколько у вас изображений и памяти на вашем сервере. Мое предпочтение было бы записать миниатюры на диск и не помещать их в кэш памяти. Предположительно, вы запускаете сайт с диска с поддержкой RAID, поэтому скорость чтения будет быстрой, а IIS будет оптимизирован для чтения дисков.

0

Да, вы можете определенно повлиять на производительность веб-сервера, добавив слишком много вещей в кеш.

Одна из причин, по которой Кэш был добавлен в ASP.Net, заключался в том, чтобы добавить свои функции для очистки самых старых/наименее используемых элементов из кеша, если память сервера начнет увеличиваться. Если вы кешируете элементы в объекте Application, очистка не будет, и сервер может в конечном итоге исчерпать память. Использование объекта Cache поможет вам избежать этого.

Объект Cache также позволяет вам устанавливать различные правила об истечении срока действия. Так, например, вы можете установить ограничение времени на то, как долго эти изображения сохраняются в кеше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню