Сведения о вопросе

Ислам

07:06, 19th August, 2020

Теги

asp.net   sql   caching    

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

Просмотров: 430   Ответов: 3

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

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

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;
            }
      }

}

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

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



  Сведения об ответе

COOL

06:02, 4th August, 2020

Я думаю, что здесь применима Максима "let the computer do it; it's smarter than you". Так же, как управление памятью и другие сложные вещи, компьютер гораздо более информирован о том, что он делает, чем ваш; следовательно, в состоянии получить больше производительности, чем вы.

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


  Сведения об ответе

baggs

11:27, 28th August, 2020

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

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

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


  Сведения об ответе

P_S_S

06:18, 19th August, 2020

Кэширование в ASP.NET является многофункциональным, и вы можете настроить кэширование довольно детальным способом.

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться