C'è qualcosa in .NET che corrisponde all'allocazione della dimensione della memoria java -Xmx
?Come posso aumentare la dimensione dell'heap .NET?
risposta
Dai un'occhiata a questa discussione: Maximum Heap size - l'unica soluzione è collegare più memoria.
This thread sembra esattamente quello che vuoi.
Se sto leggendo correttamente il post di MVP, su un sistema a 32 bit ci si limita a una dimensione dell'heap di 1,5 GB, non importa cosa, di cui si ottiene tutto non appena viene avviato il processo. Su un sistema a 64 bit il tuo heap è praticamente illimitato, non credo che nessun server mainstream o PC possa contenere la stessa quantità di memoria fisica di un processo a 64 bit.
Per quanto ho trovato, non esiste un modo semplice per controllare la dimensione dell'heap di un'app .Net utilizzando il CLR.
Il collegamento nella risposta di @Dave risponde solo a metà alla domanda. Quando ho ricercato questo stesso problema, la risposta è "L'heap cresce per utilizzare tutta la memoria disponibile" come se fosse l'unica ragione per cui si desidera controllare la dimensione massima dell'heap.
In ambienti server (in genere Java), non si desidera un'applicazione mal funzionante per il consumo di memoria a scapito di altre app ospitate. Una soluzione semplice consiste nel limitare la quantità di memoria che l'app può utilizzare per il suo heap. Questo è realizzato con l'argomento -Xmx di Java in modo da poter garantire che l'app non utilizzi più di quanto pianificato, ad es. -Xmx256M. Poiché l'allocazione della memoria sull'heap durante l'inizializzazione può rallentare l'avvio delle app, Java utilizza l'argomento -Xms per consentire alle app che fanno un sacco di creazione di oggetti durante l'inizializzazione di iniziare con un grosso blocco di heap invece della JVM che ridimensiona continuamente l'heap. va.
. Il CLR di Net non ha questa capacità. Sospetto che sia perché. CLR di .Net non è una macchina virtuale. Il CLR sembra essere un'API (abbastanza completa, potrei aggiungere) che funge da adattatore per nativi. Dll che equivale a un approccio molto più simile a un eseguibile quando si tratta di gestione della memoria.
Ho posto questa domanda sullo sviluppo di SharePoint e ho sentito che potrebbe essere possibile controllare l'heapsize tramite l'uso di moduli IIS denominati Web Apps con cui si può dire a IIS di limitare la memoria di una determinata applicazione web. Mi chiedo se questo è perché IIS ha routine personalizzate che sostituiscono/override new()/malloc()/etc e quindi in grado di fornire questo tipo di controllo alle app client. Ciò significa che le app .Net standalone sono sfortunate a meno che non si voglia scrivere un gestore di memoria personalizzato in C++ e creare un'interfaccia per .Net
La linea di fondo è che un programma CLR utilizza qualsiasi criterio di gestione della memoria/controlla l'hosting processo mette in atto. Questo è il motivo per cui devi controllare l'utilizzo della memoria di una pagina Web C# da IIS, perché IIS è in realtà un processo host che fornisce l'ambiente per l'esecuzione del codice CLR.
- 1. Come posso aumentare la dimensione del carattere in WebStorm?
- 2. Come aumentare la dimensione della finestra DOXBox?
- 3. Aumentare la dimensione heap in Java
- 4. JAVA_OPTS per aumentare la dimensione heap
- 5. Aumentare la dimensione heap JVM per Scala?
- 6. Studio Android: come aumentare la dimensione del testo logcat?
- 7. Come aumentare la dimensione dell'heap java a livello di programmazione
- 8. Come aumentare la dimensione della mappa di base Matplotlib?
- 9. Come aumentare la dimensione del buffer scrollback nella schermata GNU
- 10. Come aumentare la dimensione del font NumberPicker Android 6.0?
- 11. Come posso aumentare la velocità di scorrimento?
- 12. Come posso aumentare la memoria JVM?
- 13. Come aumentare la dimensione massima del pool in ActiveRecord?
- 14. Come aumentare la dimensione dell'elemento quando il mouse si avvicina?
- 15. Come aumentare la dimensione dell'heap della memoria su IntelliJ IDEA?
- 16. Come aumentare la dimensione della cronologia degli appunti di PHPStorm?
- 17. Come aumentare la dimensione heap di PHPStorm 9?
- 18. Come aumentare la dimensione dell'heap java in netbeans?
- 19. Come aumentare la dimensione del carattere in Xcode per swift
- 20. jQuery-UI: ridimensionabile: come aumentare la dimensione del bordo trascinabile?
- 21. Come posso aumentare la dimensione del carattere di codeigniter captcha helper
- 22. Come posso aumentare la dimensione dell'indicatore della mappa di google quando lo si passa sopra?
- 23. Come posso aumentare la dimensione assoluta dei miei grafici ggplot2 in R Shiny?
- 24. Aumentare la dimensione della quota WebSQL in una WebView
- 25. aumentare la dimensione del testo del collegamento ipertestuale html
- 26. Aumentare la dimensione di tipo bullet in stile elenco
- 27. Aumentare la dimensione massima del set di risultati Ovis jvisualVM
- 28. Come aumentare la velocità dell'emulatore?
- 29. La dimensione di BoundingBox/ROI per tracciare l'oggetto continua ad aumentare nonostante la dimensione iniziale fissa
- 30. Aumentare la dimensione del carattere in un JButton
E se si desidera limitare la dimensione dell'heap a un determinato importo? –
Assicurati di costruire il tuo assembly su x64 o su qualsiasi CPU! Se si costruisce su x86, anche su un SO/hardware x64 si avrà il limite di 1,5 GB. – Despertar
Penso che l'OP sta chiedendo come limitare l'heap di un'applicazione .Net per utilizzare solo 256 MB. Chiede se c'è una variabile argomento/configurazione/ambiente che lo farà, non necessariamente solo aumentando l'heap. –