Ho bisogno di rifattorizzare il mio progetto per renderlo immune all'eccezione OutOfMemory
.Come simulare l'eccezione OutOfMemory
ci sono enormi collezioni utilizzati nel mio progetto e modificando un parametro posso fare il mio programma per essere più precisi o utilizzare meno della memoria ...
OK, questo è lo sfondo. Quello che mi piacerebbe fare è eseguire le routine in un ciclo:
- Eseguire le subroutine con il parametro predefinito.
- Cattura l'eccezione
OutOfMemory
, modifica il parametro e prova a eseguirlo di nuovo. - Eseguire il 2 ° punto fino a quando i parametri consentono di eseguire le subroutine senza generare l'eccezione (in genere, è necessaria una sola modifica).
Ora, vorrei testarlo. Lo so, posso lanciare l'eccezione OutOfMemory
da solo, ma vorrei simulare una situazione reale.
Quindi la domanda principale è:
Esiste un modo di impostare un qualche tipo di limite di memoria per il mio programma, che dopo aver raggiunto l'eccezione OutOfMemory
verrà generata automaticamente?
Ad esempio, mi piacerebbe impostare un limite, diciamo 400 MB di memoria per il mio intero programma per simulare la situazione quando c'è una tale quantità di memoria disponibile nel sistema.
Si può fare?
Beh, nemmeno ho bisogno di confrontarlo con la memoria di sistema, ho solo bisogno di sapere quanta MB di RAM il mio programma ha usato. Ho bisogno di leggere il documento per GC ... grazie! – Gacek
ok ... beh visto che stavi cercando OutOfMemoryException, ho pensato che volessi esaurire a un certo punto ai fini della messa a punto per ottenere il massimo delle prestazioni. Ma hey, se i metodi GC funzionano per te, fantastico! – Dave
Beh, credo di poter usare i metodi GC e lanciare l'eccezione da solo dopo aver raggiunto un certo limite. Forse un po 'di background ... Ho bisogno di testare se funzionerebbe. – Gacek