¿Hay algo en .NET que corresponda a la asignación de tamaño de memoria java -Xmx
?¿Cómo puedo aumentar el tamaño del montón .NET?
Respuesta
Eche un vistazo a este hilo: Maximum Heap size - la única solución es agregar más memoria.
This thread parece exactamente lo que quieres.
Si leo la publicación del MVP correctamente, en un sistema de 32 bits, está limitado a un tamaño de almacenamiento dinámico de 1,5 GB sin importar qué, de lo que obtendrá todo tan pronto como comience el proceso. En un sistema de 64 bits, su montón es esencialmente ilimitado, no creo que ningún servidor convencional o PC pueda almacenar tanta memoria física como un proceso de 64 bits pueda resolver.
Por lo que he encontrado, no hay una manera simple de controlar el tamaño del montón de una aplicación .Net usando el CLR.
El enlace en la respuesta @ Dave solo responde la mitad de la pregunta. Cuando investigué este mismo problema, la respuesta es "El montón crece para usar toda la memoria disponible" como si esa fuera la única razón por la que deseara controlar el tamaño máximo de almacenamiento dinámico.
En entornos de servidor (normalmente Java), no desea que una aplicación de mal comportamiento acapare la memoria a expensas de otras aplicaciones alojadas. Una solución simple es limitar la cantidad de memoria que la aplicación puede usar para su montón. Esto se logra con el argumento -Xmx de Java para que pueda garantizar que la aplicación no usará más de lo que está planificado, p. Ej. -Xmx256M. Dado que asignar memoria en el montón durante la inicialización puede ralentizar el inicio de las aplicaciones, Java usa el argumento -Xms para permitir que las aplicaciones que hacen mucha creación de objetos durante la inicialización comiencen con un gran bloque de almacenamiento dinámico en lugar de que la JVM cambie el tamaño del montón va.
.Net's CLR no tiene esta capacidad. Sospecho que es porque .Net's CLR no es una máquina virtual. El CLR pasa a ser una API (bastante completa, podría agregar) que sirve como un adaptador para .dlls nativos que equivale a un enfoque mucho más parecido a un ejecutable cuando se trata de la administración de la memoria.
He hecho esta pregunta sobre el desarrollo de SharePoint y oí que es posible controlar el amperaje mediante el uso de módulos IIS llamados Aplicaciones Web por lo que puede decirle a IIS que limite la memoria de una aplicación web determinada. Me pregunto si esto se debe a que IIS tiene rutinas personalizadas que reemplazan/anulan new()/malloc()/etc y así pueden proporcionar este tipo de control a las aplicaciones cliente. Eso significa que las aplicaciones independientes de .Net no están de suerte a menos que desee escribir un administrador de memoria personalizado en C++ y crear una interfaz para .NET
La conclusión es que un programa CLR utiliza las políticas de gestión de memoria/controla el alojamiento proceso pone en marcha. Es por eso que tiene que controlar el uso de memoria de una página web de C# desde IIS, porque IIS es en realidad un proceso de host que proporciona el entorno para que se ejecute el código CLR.
- 1. JAVA_OPTS para aumentar el tamaño del montón
- 2. cómo aumentar la memoria del montón de Java permanentemente?
- 3. cómo elegir el tamaño del montón JVM?
- 4. Cómo limitar el tamaño del montón?
- 5. Android: ¿cómo aumentar el tamaño del montón en tiempo de ejecución?
- 6. La mejor manera de aumentar el tamaño del montón en el archivo catalina.bat
- 7. Aumentar el tamaño del almacenamiento dinámico en Java
- 8. espacio en el montón de Java en netbeans ... ¡pero ya he aumentado el tamaño del montón!
- 9. ¿cómo puedo aumentar el tamaño de este SVG?
- 10. ¿Cómo puedo aumentar el tamaño de la pila en Python?
- 11. ¿Cómo puedo aumentar el tamaño de la pila con runhaskell?
- 12. .NET generation 0 montón
- 13. ¿Cómo aumentar el tamaño de la historia del portapapeles PHPStorm?
- 14. jQuery-UI: redimensionable: ¿cómo aumentar el tamaño del borde arrastrable?
- 15. Cómo aumentar el tamaño del texto en SoapUI
- 16. .NET Tamaño del objeto
- 17. ¿Cuál es el tamaño del montón del Samsung Galaxy S3?
- 18. Quiero confirmar el tamaño del montón que está usando tomcat
- 19. jVectorMap aumentar (mundo) tamaño del mapa
- 20. ¿Cómo puedo aumentar el tamaño de fuente en función del ancho de la ventana?
- 21. ¿Cómo puedo aumentar el tamaño predeterminado 16px del conjunto de iconos de Jquery-UI?
- 22. aumentar el tamaño máximo del elemento en memcached?
- 23. Cómo aumentar el tamaño del almacenamiento dinámico para el servidor jBoss
- 24. Aumentar el tamaño (altura) del área de título en ColorBox
- 25. C# Aumentar Tamaño de pila - ¿Es posible
- 26. ¿aumenta el tamaño del montón de Java de forma permanente?
- 27. sonar findbugs montón tamaño
- 28. ¿Cómo puedo aumentar el rendimiento del siguiente código?
- 29. Cómo puedo aumentar el rendimiento SSL del servidor
- 30. clase montón en .NET
¿Qué sucede si quiere limitar el tamaño del montón a una cantidad establecida? –
¡Asegúrese de construir su ensamble a x64 o cualquier CPU! Si compila x86, incluso en un OS/Hardware x64, tendrá el límite de 1,5 GB. – Despertar
Creo que OP está preguntando cómo limitar el montón de una aplicación .Net para usar solo 256MB. Él pregunta si hay una variable de argumento/configuración/entorno que hará eso, no necesariamente solo aumentando el montón. –