Frage

Kürzlich habe ich die Möglichkeiten des Cachings in ASP.NET untersucht.

Ich habe meinen eigenen „Cache“ gewürfelt, weil ich es nicht besser wusste, er sah ungefähr so ​​aus:

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

}

Die Werte werden also für eine Weile in einem Singleton gespeichert und nach Ablauf der Zeit werden die Werte erneuert.Wenn die Zeit noch nicht abgelaufen ist und eine Datenanforderung erfolgt, werden die im Feld gespeicherten Werte zurückgegeben.

Was sind die Vorteile gegenüber der Verwendung der echten Methode (http://msdn.microsoft.com/en-us/library/aa478965.aspx) an Stelle von?

War es hilfreich?

Lösung

Ich denke, die Maxime „Lass den Computer machen;„es ist schlauer als du“ gilt hier.Genau wie bei der Speicherverwaltung und anderen komplizierten Dingen ist der Computer viel besser über seine Aktivitäten informiert als Sie.Folglich sind Sie in der Lage, mehr Leistung zu erbringen als Sie.

Microsoft hat ein Team von Ingenieuren daran arbeiten lassen und es ist ihnen wahrscheinlich gelungen, viel mehr Leistung aus dem System herauszuholen, als es Ihnen möglich wäre.Es ist auch wahrscheinlich, dass das integrierte Caching von ASP.NET auf einer anderen Ebene arbeitet (auf die Ihre Anwendung nicht zugreifen kann), wodurch sie viel schneller wird.

Andere Tipps

Der ASP.NET-Caching-Mechanismus gibt es schon seit einiger Zeit, daher ist er stabil und gut verstanden.Es gibt viele Ressourcen, die Ihnen dabei helfen, das Beste daraus zu machen.

Abhängig von Ihren Anforderungen kann es die richtige Lösung sein, selbst zu rollen.

Der schwierige Teil beim Caching besteht darin, auszuwählen, was wann sicher zwischengespeichert werden soll.Bei Anwendungen, in denen sich Daten häufig ändern, kann es beim Caching zu schwer zu behebenden Fehlern kommen. Seien Sie also vorsichtig.

Das Caching in ASP.NET ist funktionsreich und Sie können das Caching sehr detailliert konfigurieren.

In Ihrem Fall (Daten-Caching) ist eine der Funktionen, die Sie verpassen, die Möglichkeit, den Cache ungültig zu machen und zu aktualisieren, wenn Daten auf dem SQL-Server auf irgendeine Weise aktualisiert werden (SQL-Cache-Abhängigkeit).

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top