Sto utilizzando la cache ASP.net in un progetto Web e sto scrivendo una pagina di "stato" per essa che mostra gli elementi nella cache e altrettante statistiche sulla cache che riesco a trovare. C'è un modo per ottenere la dimensione totale (in byte) dei dati memorizzati nella cache? La dimensione di ogni oggetto sarebbe ancora migliore. Voglio mostrarlo su una pagina web, quindi non penso di poter usare un contatore delle prestazioni.Come determinare la dimensione totale della cache ASP.Net?
risposta
sto guardando il mio monitor delle prestazioni e alle ASP.NET Apps v2.0.50727 categoria ho i seguenti contatori relativi cache:
Cache Limite di memoria% macchina utilizzata
Cache % Limite di memoria processo utilizzato
Ci sono anche molte altre metriche relative alla cache in questa categoria.
Questi dovrebbero essere in grado di ottenere la percentuale, quindi se è possibile ottenere il totale consentito con Cache.EffectivePrivateBytesLimit
o qualche altra chiamata si dovrebbe essere in grado di capirlo. Non ho esperienza personale con questi contatori quindi dovrai fare qualche ricerca e test per verificare.
Ecco un articolo di avvio rapido sulla lettura da contatori delle prestazioni: http://quickstart.developerfusion.co.uk/quickstart/howto/doc/PCRead.aspx
Non ho provato. Ma forse puoi usare Cache Manager plug-in for ASP.NET. O usalo come esempio.
Questo sito ferire i miei occhi: P –
Questo link è morto e non sono riuscito a trovare l'articolo sul sito di ASP Alleanza :( – MikeJ
PerformanceCounter pc = nuovo PerformanceCounter ("Applicazioni ASP.NET", "Cache% limite di memoria macchina utilizzato", vero); pc.InstanceName = "__TOTAL__"; CacheMachineMemoryLimitUsedLiteral.Text = string.Format ("{0: 0.00}%" , pc.NextValue()); –
Nota, a causa di Markdown, il codice di Mike dovrebbe avere due caratteri di sottolineatura all'inizio e alla fine di "__TOTAL__" – Spongeboy
markdown nei commenti sono lo stesso che esiste nei messaggi, basta aggiungere il 'prima e dopo il codice da utilizzare come" codice "... per questo esempio:' pc.InstanceName = "__Totale __"; 'può essere letto da [MSDN] (http : //msdn.microsoft.com/en-us/library/fxk122b4 (v = VS.100) aspx) – balexandre