Monday, October 5, 2009

Caching - Introduzione, parte 1

A volte ci troviamo con applicazioni mal strutturate che iniziano a soffrire, sin da subito o con l'andare del tempo, sotto l'aspetto prestazionale e di scalabilità.
Ciò si traduce in applicazioni così lente che perderanno alcuni secondi, se non minuti, prima d'esser completamente renderizzate dal nostro browser.
Solitamente ciò capita perchè nel nostro applicativo ci sono dei colli di bottiglia difficili da evitare.
La bellezza del caching, a differenza di tante altre tecniche, è l'alto livello di performance e scalabilità.
Le Performance miglioreranno perchè il tempo impiegato per la richiesta delle informazioni sarà drasticamente diminuito.
La Scalabilità è migliorata perchè lavoreremo attorno quei colli di bottiglia che possono essere, ad esempio, le connessioni al database.
Ovviamente non è tutto oro ciò che luccica.
Bisogna sempre tener presente che la memoria dei server è limitata e, se iniziamo a tenere in memoria troppe informazioni, riempiremo la ram e parte delle informazioni verranno registrate nel disco e rallenteremo l'intero sistema.
Per fortuna ASP.NET ci viene incontro tenendo un tempo massimo di vita delle informazioni a discrezione del server.
Se le informazioni in cache saranno troppe o un'applicazione consumerà troppa memoria, le informazioni verranno selettivamente cancellate dalla cache, mantenendo così le performance.
Con ASP.NET possiamo tenere in cache (e vedremo come):
  • un'intere pagina html
  • parte di una pagina html
  • risorse varie
Possiamo anche modificare le policy per rendere i dati in cache non più disponibili e le policy affinchè vari oggetti possano essere cancellati dalla memoria nel momento in cui vengono a mancare delle dipendenze.

No comments:

Post a Comment