Laden...

ASP Globale Werte laden || Performance

Erstellt von Diräkt vor 13 Jahren Letzter Beitrag vor 13 Jahren 849 Views
D
Diräkt Themenstarter:in
615 Beiträge seit 2009
vor 13 Jahren
ASP Globale Werte laden || Performance

Hallo liebe Leute

Folgende Frage :

-> Ich habe ein XML File mit c.a 100 Einträgen
-> Darin enthalten sind statische Werte die ich überall brauche....
-> Bei jedem PAGE_LOAD ereigniss wird etwas überprüft anhand dieser Werte....

Was ist am schlausten ?

-> XML immer wieder auslesen ?

alà :

static public List<PageAccessProperties> ReadFromXML()
    {
        XmlSerializer ser = new XmlSerializer(typeof(PageAccessProperties[]));
        StreamReader sr = new StreamReader(model.Instance.RootPath + "\\Config\\AccessConfig.xml");
        PageAccessProperties[] result = (PageAccessProperties[])ser.Deserialize(sr);
        sr.Close();
        return result.ToList<PageAccessProperties>();
    }

-> Liste beim Start (welches EVENT ?! global.asax ?!...) auslesen und dann mit dieser Liste vergleichen (refresh... ?!)

-> Spielt es gar keine Rolle ? (bei sowenig einträgen ?)

Danke für Eure Tipps !!

Beste Grüsse

Diräkt

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Spielt es gar keine Rolle ? (bei sowenig einträgen ?) würde ich so sehen.

Ansonsten in der Application die Liste mit anwendungsweiten Daten ablegen, dann kannst Du immer darauf zugreifen, und/oder benutzerspezifische Daten in der Session ablegen. (Beide sind Member der Page, und können über Indexer per Name gefüllt und ausgelesen werden).

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

5.941 Beiträge seit 2005
vor 13 Jahren

Hoi Diräkt

I/O-Zugriffe sind das teuerste, was vorallem bei einer Mehrbenutzeranwendung zum tragen kommt.
Wenn du das pro Request machst, oder sogar mehrfach pro Request, kommt da schnell was zusammen.

Daher würde ich genau gucken:

  • Benutzerspezifisch => Session
  • Anwendungsglobal und kein Änderungsbedarf zur Laufzeit => Application
  • Anwendungsglobal und ggf. einen Änderngsbedarf zur Laufzeit => Application + Locking

Auch wenn du nur ein Byte ausliest, das teuer ist nicht die Datenmenge, sondern das du überhaupt einen I/O-Zugriff machst.

Dazu zählen Festplatten, sowie auch Netzwerkzugriffe. Dort bist du auch nie gefeit vor Timeouts oder eben dann Engpässe.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

Hinweis von MarsStein vor 13 Jahren

Thema abgeteilt: Wo / wie (Benutzer)-Berechtigungen aus XML speichern?