2011-11-25 25 views
7

Sto profiling un C# NET WinForms applicazione e ho notato che genera milioni di errori di pagina morbide e continuare ad aumentare nel corso dei lavori ...Come posso evitare l'enorme numero di errori di pagina software generati dalla mia app C# .NET?

So che in .NET il numero delle pagine di errore che un'applicazione genera di solito è alta, ma milioni di errori di pagina sembrano troppo ... Sembra che l'applicazione abbia attivato una condizione di competizione con il GC, è possibile?

C'è qualche codice mal progettato che può portare a questa situazione? Se non nel codice ci sono alcune impostazioni nascoste del framework .NET che possono ridurre il numero di errori di pagina?

È possibile evitare la generazione di un numero sempre più elevato di errori di pagina software?

+0

Perché voi cura? Quanto tempo impiegano questi difetti? Capisci che i guasti software non vengono letti dal disco? –

+0

Sì, so che i guasti software non leggono il disco, ma il numero è enorme e continua ad aumentare ... È normale? Non penso che sia un comportamento normale. – aleroot

+2

Il comportamento normale è ignorare i numeri casuali e concentrarsi sulla risoluzione dei problemi. È un problema o solo un numero casuale che hai osservato? –

risposta

4

Consiglierei davvero di lasciare questa cosa da sola se non è un problema. Tuttavia, se si verificano problemi di prestazioni, provare e isolare il codice che genera la maggior parte degli errori di pagina. Probabilmente è da qualche parte che si sta utilizzando un oggetto di memoria di grandi dimensioni.

Cerca di mantenere il codice "non sicuro" il più semplice e isolato possibile, ad es. incapsula tutto il codice non sicuro in una classe o funzione. Tieni presente che creare problemi con il GC .NET potrebbe portare a complicazioni per lo più inutili.

Controllare questo articolo per un po 'di introduzione non sicuri (E' un po 'vecchio, ma ancora vero): http://www.codeproject.com/KB/cs/unsafe_prog.aspx

Inoltre, è possibile aumentare il tempo fino a quando il GC raccoglie, questo potrebbe aiutare

Problemi correlati