Question

Récemment, j'ai étudié les possibilités de mise en cache dans ASP.NET.

J'ai lancé mon propre "Cache", parce que je ne connaissais pas mieux, il ressemblait un peu à ceci :

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

}

Ainsi, les valeurs sont stockées pendant un certain temps dans un singleton, et lorsque le délai expire, les valeurs sont renouvelées.Si le délai n'est pas expiré et qu'une demande de données est effectuée, les valeurs stockées dans le champ sont renvoyées.

Quels sont les avantages par rapport à l'utilisation de la méthode réelle (http://msdn.microsoft.com/en-us/library/aa478965.aspx) au lieu de cela?

Était-ce utile?

La solution

Je pense que la maxime "laissez l'ordinateur faire" ;c'est plus intelligent que toi" s'applique ici.Tout comme la gestion de la mémoire et d'autres choses compliquées, l'ordinateur est beaucoup plus informé que vous sur ce qu'il fait ;par conséquent, capable d’obtenir plus de performances que vous.

Microsoft a fait travailler une équipe d'ingénieurs dessus et ils ont probablement réussi à extraire beaucoup plus de performances du système que ce qui serait possible pour vous.Il est également probable que la mise en cache intégrée d'ASP.NET fonctionne à un niveau différent (inaccessible à votre application), ce qui la rend beaucoup plus rapide.

Autres conseils

Le mécanisme de mise en cache ASP.NET existe depuis un certain temps, il est donc stable et bien compris.Il existe de nombreuses ressources pour vous aider à en tirer le meilleur parti.

Rouler le vôtre pourrait être la bonne solution, selon vos besoins.

La partie la plus difficile de la mise en cache est de choisir ce qui peut être mis en cache en toute sécurité et à quel moment.Pour les applications dans lesquelles les données changent fréquemment, vous pouvez introduire des bogues difficiles à résoudre avec la mise en cache, alors soyez prudent.

La mise en cache dans ASP.NET est riche en fonctionnalités et vous pouvez configurer la mise en cache de manière assez granulaire.

Dans votre cas (mise en cache des données), l'une des fonctionnalités qui vous manque est la possibilité d'invalider et d'actualiser le cache si les données sur le serveur SQL sont mises à jour d'une manière ou d'une autre (dépendance du cache SQL).

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top