Pregunta

¿Es el indicador del compilador VS2005 C++ como el indicador Java Xmx???M para poder limitar el tamaño del montón de mi aplicación que se ejecuta en Windows?

Necesito limitar el tamaño del montón para poder llenar la memoria y averiguar la memoria libre actual.(El código también se ejecuta en un sistema integrado donde este es el mejor método para obtener el uso de la memoria)

¿Fue útil?

Solución

Es posible que desees comprobar si la utilidad gflags (en las herramientas de depuración de Windows) puede hacer esto.Puede hacer muchas otras cosas interesantes con el montón de aplicaciones nativas.

Otros consejos

Puede configurar el tamaño del montón para su programa configurando el tamaño en:

Linker -> System -> Heap Reserve Size

También se puede configurar en la línea de comando del compilador usando /HEAP:reserve

El tamaño del montón depende del asignador utilizado.También puede haber alguna llamada a la API de Windows que limite la cantidad de memoria que un proceso puede asignar, pero no conozco ninguna y no tengo ganas de buscarla en este momento, lo siento.Pero, en general, si escribe su propio asignador (tal vez simplemente ajuste el asignador proporcionado por el compilador) malloc() o new operador) puede limitar artificialmente el tamaño del montón de esa manera.

Alternativamente, si tiene su propio asignador, aunque sea solo un contenedor, puede realizar un seguimiento de cuánta memoria se ha asignado en total.Si conoce la cantidad disponible, puede simplemente restar un poco y terminar con el total.Es posible que también pueda obtener estadísticas de fragmentación, como el bloque libre más grande.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top