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

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

2 голосов
/ 14 августа 2008

Недавно я изучал возможности кэширования в 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) вместо этого?

Ответы [ 3 ]

4 голосов
/ 14 августа 2008

Я думаю, что здесь применяется принцип «пусть компьютер делает это; он умнее вас». Точно так же, как управление памятью и другие сложные вещи, компьютер гораздо лучше осведомлен о том, что он делает, чем вы; следовательно, в состоянии получить больше производительности, чем вы.

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

2 голосов
/ 14 августа 2008

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

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

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

1 голос
/ 14 августа 2008

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

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

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

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