Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кэширование - как лучше?
|
|||
|---|---|---|---|
|
#18+
Необходимо выводить картинки из БД, для этого использую HttpHandler. Но при каждом его вывове происходит подключение к БД, а на странице имеется 10 картинок => 10 подключений. Как сделать оптимальное кэшировыание этих картинок. Причём используется постраничный вывод, т.е. картинок на самом деле около 100 только на страницу их выводится по 10 штук. Рассматриваю такой вариант, при запросе данной страницы в событии Page_Load будет осуществляться одно подключение к БД, при котором будут вытягиваться эти 10 картинок и записываться в Session или Cache, и в HttpHandler будт использоваться эти данные из Сессии или из Кэша. Может кто-нибудь посоветует лучше вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 00:47 |
|
||
|
Кэширование - как лучше?
|
|||
|---|---|---|---|
|
#18+
cache - нормальный вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 01:17 |
|
||
|
Кэширование - как лучше?
|
|||
|---|---|---|---|
|
#18+
cache - нормальный вариант Такой вариант скорее всего не подходит. Т.к., допустим, один пользовтель запрашивает страницу с первыми 10 фотографиями, у него загрузилось только первых пять, т.е. в кэше находится эти первые десять фотографий. Затем другой пользователь запрашивает страницу со вторыми 10 фотографиями, соответсвенно содержимое кэша изменилось, в нём теперь находится второй 10-ок фотографий => т.е. для первого пользователя одна половина фотографий из его запроса, вторая половина из запроса второго пользователя. 1. Может тогда хранить Все 100 картинок в кэше, но чё-то как-то много памяти будет сжираться. 2. Ещё вариант, это каждый раз при запросе страницы загружать картинки не в Cache, а в Session, но опять как-то не рационально, т.к. если одновременно запросят страницу 10 человек то в памяти будет находится 100 картинок. Чё-то я совсем запутался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 10:54 |
|
||
|
Кэширование - как лучше?
|
|||
|---|---|---|---|
|
#18+
Выйгрыша практически никакого (но он есть ), но это не заметно при заходе на страницу одного пользователя, но если их будет штук 10 одновременных, это стразу выливается в 110 подключений к БД. Т.к. на каждого пользователя открывается соединение при событиии Page_Load и т.к. на каждую картинку срабатывает HttpHandler ( их всего десять на странице). Итого 110 подключений. А если кэшировать например тот же ДатаТэйбл, в котором содержатся эти картинуи, на 30 секунд заместо 110 подключений в течение этих тридцати секунд будет произведено только ОДНО подключение к БД. Как я понимаю кэширование вообще необходимо для масштабируемости приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 16:38 |
|
||
|
Кэширование - как лучше?
|
|||
|---|---|---|---|
|
#18+
Как я понимаю кэширование вообще необходимо для масштабируемости приложения. Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 19:09 |
|
||
|
Кэширование - как лучше?
|
|||
|---|---|---|---|
|
#18+
Limonadcache - нормальный вариант Такой вариант скорее всего не подходит. Т.к., допустим, один пользовтель запрашивает страницу с первыми 10 фотографиями, у него загрузилось только первых пять, т.е. в кэше находится эти первые десять фотографий. Затем другой пользователь запрашивает страницу со вторыми 10 фотографиями, соответсвенно содержимое кэша изменилось, в нём теперь находится второй 10-ок фотографий => т.е. для первого пользователя одна половина фотографий из его запроса, вторая половина из запроса второго пользователя. 1. Может тогда хранить Все 100 картинок в кэше, но чё-то как-то много памяти будет сжираться. 2. Ещё вариант, это каждый раз при запросе страницы загружать картинки не в Cache, а в Session, но опять как-то не рационально, т.к. если одновременно запросят страницу 10 человек то в памяти будет находится 100 картинок. Чё-то я совсем запутался. А еще есть в файле Global.asax событие Application_OnStart. В нем можно загрузить ОДИН раз за ОДНО подключение в кэш штук 50 (или сразу сто?), которые будут чаще запрашиваться. А в БД - фиксировать частоту запросов. И регулировать состав картинок в кэше со временем по частоте запросов. Их еще можно сохранить, как переменные уровня приложения. Это, вроде не совсем кэш... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 03:26 |
|
||
|
Кэширование - как лучше?
|
|||
|---|---|---|---|
|
#18+
Вот тут: http://msdn.microsoft.com/msdnmag/issues/04/04/CuttingEdge/ есть контрол, который выводит рисунки и тут же сохраняет их в кеш, при повторном вызове будет использоваться кеш, время нахождения картинки в кеше можно регулировать ну итд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 03:49 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34055963&tid=1388590]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 381ms |

| 0 / 0 |
