Silverlight: performance dell'isolated storage
Durante lo sviluppo del MetadataDiffViewer ho dovuto ricorrere all'uso dell'Isolated Storage per salvare i metadati in locale e poterli prelevare da disco invece che da remoto. Ho notato però che le performance, rispetto allo scaricare da un webserver in locale, erano peggiori ed era imputabile a:
- la chiamata a IsolatedStorageFile.GetUserStoreForApplication/Site: è molto costosa, aprendo lo storage una sola volta, dall'inizio alla fine ho guadagnato un 40% di performance;
- la lettura dello stream attraverso IsolatedStorageFileStream: è un più lenta rispetto ad uno stream in memoria nelle operazioni di accesso randomico. Questo è ovvio visto che va su disco, ma non pensavo così tanto. Precaricando il tutto in un MemoryStream e parserizzando poi l'XML con XDocument.Load in un'attività, ho guadagnato 3 secondi su 14 e non è poco.
Insomma, occhio a come lo usate.











