Har trimmat webbplatsen med cache och delar med mig av kodexempel

Nu har jag fixat med den något grovhuggna cache-funktion jag tidigare byggde in i publiceringssystemet. Detta är en ren programmatisk cache så det finns fortfarande saker kvar att beakta i stil med att låta .NET använda output cache direkt på webbkontrollerna.

Innan cachebygget

Vid varje sidvisning gjordes 5-9 anslutningar mot databasen. Alla anslutningar utom 1 resulterade i en lista med relaterade sidor att presentera. Alla anslutningar görs mot två sammanslagna tabeller.

Svaren med listor av relaterade sidor, exempelvis för att visa huvudmenyn, behandlades genom foreach-satser 2 gånger per anslutning vid varje sidvisning.

Efter förbättrad cache

Vid varje sidvisning kontrolleras först mot cachen vilka sidor eller kollektioner med sidor som visats tidigare och finns kvar i cachen. För varje sida och kollektion av sidor som finns i cachen sparas en databasanslutning in och det blir bara 1 foreach-sats för själva presentationen.

Min standardinställning är att låta cachade sidor/kollektioner att ligga kvar i cachen i en timme. Dessutom har jag byggt till så att:

  • Man manuellt kan tömma alla cachade objekt.
  • När en sida uppdateras så raderas just den sidans alla spår i cachen.

Kvar på att-göra-listan är att bygga till cachning för konfigurationsfiler, språkfiler och andra typer av saker som måste läsas från en långsam hårddisk.

Kodexempel och projekt för nerladdning finns på sidan om cachning »

Leave a Reply

Your email address will not be published. Required fields are marked *