kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
Анонимный пользователь
Вопрос

Кэширование ASP.NET

Недавно я исследовал возможности кэширования в ASP.NET.

Я создал свой собственный "Кэш", потому что не знал ничего лучше, и выглядел он примерно так:

public class DataManager
{

      private static DataManager s_instance;

      public static DataManager GetInstance()
      {
      }

      private Data[] m_myData;
      private DataTime m_cacheTime;

      public Data[] GetData()
      {
            TimeSpan span = DateTime.Now.Substract(m_cacheTime);

            if(span.TotalSeconds > 10)
            {
                  // Do SQL to get data
                  m_myData = data;
                  m_cacheTime = DateTime.Now;
                  return m_myData;     
            }
            else
            {
                  return m_myData;
            }
      }

}

Итак, значения хранятся некоторое время в синглтоне, а когда время истекает, значения обновляются. Если время не истекло, и выполняется запрос данных, то возвращаются сохраненные значения в поле.

Каковы преимущества использования настоящего метода (http://msdn.microsoft.com/en-us/library/aa478965.aspx) вместо этого?

2 2008-08-14T14:46:30+00:00 3
 Kev
Kev
Редактировал вопрос 14-го августа 2008 в 3:02
Программирование
caching
sql
asp.net
Решение / Ответ
 TheSmurf
TheSmurf
14-го августа 2008 в 2:52
2008-08-14T14:52:54+00:00
Дополнительно
Источник
Редактировать
#8414965

Я думаю, что здесь применимо выражение "позвольте компьютеру сделать это, он умнее вас&quot-. Как и в случае с управлением памятью и другими сложными вещами, компьютер гораздо лучше осведомлен о том, что он делает, чем вы; следовательно, он может добиться большей производительности, чем вы.

В Microsoft над этим работала целая команда инженеров, и им, вероятно, удалось выжать из системы гораздо больше производительности, чем это было бы возможно для вас. Также вероятно, что встроенное кэширование ASP.NET'работает на другом уровне (недоступном для вашего приложения), что делает его намного быстрее.

4
0
Eric  Z Beard
Eric Z Beard
14-го августа 2008 в 2:55
2008-08-14T14:55:42+00:00
Дополнительно
Источник
Редактировать
#8414966

Механизм кэширования ASP.NET существует уже давно, поэтому он стабилен и хорошо изучен. Существует множество ресурсов, которые помогут вам извлечь из него максимум пользы.

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

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

2
0
 Kev
Kev
14-го августа 2008 в 2:57
2008-08-14T14:57:32+00:00
Дополнительно
Источник
Редактировать
#8414967

Кэширование в ASP.NET обладает широкими возможностями, и вы можете настраивать кэширование достаточно детально.

В вашем случае (кэширование данных) одной из функций, которую вы упускаете, является возможность аннулировать и обновлять кэш, если данные на SQL-сервере каким-либо образом обновляются (SQL Cache Dependency).

http://msdn.microsoft.com/en-us/library/ms178604.aspx

 Kev
Kev
Редактировал ответ 14-го августа 2008 в 3:02
1
0
Похожие сообщества 16
DotNetRuChat
DotNetRuChat
6 652 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
3 542 пользователей
Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
sql_ninja
sql_ninja
2 520 пользователей
Канал для тех, кто знает или интересуется SQL 🛢 Взаимная помощь и позитив =) Вакансии тут - @sql_jobs Бан за: оскорбления, спам, фри рекламу, расизм, сексизм. Наш MSSQL канал - @sqlcom По рекламе: @aveLestat
Открыть telegram
SQL JOBS
SQL JOBS
2 144 пользователей
Обязательны: компания, город, позиция, вилка, наличие удалёнки, требования, контакты. Бан за рекламу, сексизм, расизм и неадекватный обсёр объявлений
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией