Jag försöker dra upp prestandarden för mitt användarhanterings system för webben. Jag kodar ASP.NET med C#.
Jag undrar hur man kan cacha dataSet i minet för snabbare åtkomst för alla användare. Vilka kommandom man använder och hur man läser från minnet efter det att man laddat upp det.
Du kan använda dig av objektet Cache. Läs på om det i hjälpfilerna.
Om du vill bli riktigt avancerad så kan du använda dig av MS Cache Application Block. Där kan du ställa in en massa parameters hur länge ett object skall vara kvar i cachen osv osv..
Hur ser en sådan kodsnutt ut? Varför har du skrivit en egen? (Mjo, begränsningar i MS objekt kanske..?) Kan du inte posta lite kod här så att vi får se? :D
Varför skrev jag en egen?
Tja.. erfarenhet, det är så man lär sig saker, samt att det var kul. :) Eftersom jag fått "inspiration" från MS Cache så är det nog inte begränsningar i den som spelar någon roll. Men visst jag kan ju bygga ut min hur jag vill.
Hur ser en sådan kodsnutt ut?
Det kan bli hur avancerat som helst. Men börja väldigt enkelt. De absoult enklast cachen som du kan göra är en HashTabel (vilket är grunden för de flesta cachar). Du i lagrar du ditt objekt och ett namn för objektet.
HashTable myCache = new HashTable();
myCache.Add("MittObject",MyObject);
Där har du en väldigt enkel cache :)
Oftas vill man ha lite mer funktioner, typ att man vill kunna bestämma att datan skall vara aktuell i en vistid. Det man gör då är att man skapar ett "cacheObject" som man lägger i sin HashTable. Det består av 2 parameters. Ett object och en DateTime.
CacheObject cObject = new CacheObject();
cObject.Object = myObject;
cObject.ValidTo = new DateTime(2004,01,27,12,00,00);
myCache.Add("MittObject",cObject);
Nu har du en tidpunkt när objectet inte skall vara gilltigt längre. Antingen är man nöjd med det och kontrollerar tiden när man skall hämta objectet eller så gör man en liten snurra som ligger och kontrollerar tiden på objecten i cachen med jämnamellanrum och plockar bort de som är för gammla.
Fungerar det?
Hmm.. sist jag provade så fick jag något mystiskt fel som jag inte orkat felsöka än :(
Vart lägger man den koden om man vill att den ska köras så fort siten startas? Jag vill att vissa delar alltid ska finnas cachade i minnet oberoende vilken användare som är inne.
Vart lägger man den koden om man vill att den ska köras så fort siten startas? Jag vill att vissa delar alltid ska finnas cachade i minnet oberoende vilken användare som är inne.