/ / Чи можу я використовувати керування ASP.NET 'OutputCache' для кешування зображень без показу продуктивності? - asp.net, outputcache

Чи можна використовувати елемент керування ASP.NET "OutputCache" для кешування зображень без покращення продуктивності? - asp.net, outputcache

У мене є деякі дії ASP.NET MVC, які генерують зображення динамічно (хоча це може бути і сторінка ASPX).

Я використовую [OutputCache] для кешування цих зображень. Мені просто цікаво, якщо мені потрібно турбуватися про ASP.NET кешування зображень в пам'яті і займати занадто багато ресурсів. Це зображення різних розмірів для кошика для покупок, що містить лише кілька десятків продуктів.

Чи буде OutputCache використовувати диск або просто в пам'яті? Наскільки це інтелектуально? Або я повинен просто зберегти зображення на диск себе і реалізувати свою власну систему кешування (яка насправді поточної реалізації)?

Відповіді:

3 для відповіді № 1

Для всіх намірів і цілей, я вважаю, що вихідний кеш повністю запам'ятовується - це означає, що якщо пул додатків буде перероблено, то зображення потрібно буде генерувати знову.

У минулому я мав робити щось подібнеЯ фактично впровадив дворівневу систему, яка використовувала в основному кеш HTTP і використовувала файлову систему як резервну. Якщо щось не існує, я згенерував зображення і зберег його на диск і поклав його в кеш. Таким чином, якщо він виштовхнеться з кешу або пул додатків буде повторно використаний, мені потрібно лише завантажити його з диска з'являється, що ви зробили те ж саме).

Наскільки "занадто багато пам'яті", якщо ви явновикористовуйте HttpContext.Cache замість [OutputCache], ви можете керувати пріоритетом елемента в кеші. Потім можна налаштувати параметри на вашому додатку додатків, щоб контролювати, скільки пам'яті він використовує в цілому, але я не впевнений, що можна зробити багато іншого, крім цього. Пара зображень * 12 продуктів doesn''t здаються люблю це би взяло дуже багато пам'яті до мені хоч.

Не знаючи нічого про вашудодаток, мені здається, що ви могли б піти тільки з використанням outputcache. Проте, якщо вам потрібно щось більш надійне і масштабоване, я використовую дворівневу систему, яку я описав.