.NET Application Cache vs Database Cache - PullRequest
       7

.NET Application Cache vs Database Cache

2 голосов
/ 14 января 2010

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

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

У меня вопрос: если в кэше приложений хранятся тысячи изображений, которые как-то повлияют на производительность сервера?

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

Ответы [ 3 ]

5 голосов
/ 14 января 2010

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

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

1 голос
/ 14 января 2010

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

0 голосов
/ 14 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...