Compartir a través de


Ejemplo Adding and Removing Memory Pressure Application

Actualización: noviembre 2007

Este ejemplo muestra la interoperación de la recolección de elementos no utilizados administrada con el código no administrado.

Para obtener información sobre cómo utilizar los ejemplos, consulte los temas siguientes:

Download sample

Para generar el ejemplo desde el símbolo del sistema

  1. Abra la ventana del símbolo del sistema y navegue hasta el subdirectorio específico de uno de los lenguajes bajo el directorio GCDemo. Para obtener información sobre la configuración requerida y el símbolo del sistema de SDK, vea Cómo: Establecer la configuración de los ejemplos.

  2. Escriba msbuild GCDemoCS.sln o msbuild GCDemoVB.sln en la línea de comandos, dependiendo del lenguaje de programación elegido.

Para generar el ejemplo utilizando Visual Studio

  1. Abra el Explorador de Windows y navegue hasta el subdirectorio específico de uno de los lenguajes bajo el directorio GCDemo.

  2. Haga doble clic en el archivo GCDemoCS.sln o GCDemoVB.sln, dependiendo del lenguaje de programación elegido, para abrir el archivo en Visual Studio.

  3. En el menú Generar, seleccione Generar solución.

Para ejecutar el ejemplo

  • Abra la ventana del símbolo del sistema y navegue hasta el directorio que contiene el nuevo archivo ejecutable.

Requisitos

En estos ejemplos, son necesarios los encabezados de Windows, que estarán disponibles para el proyecto si realizó la compilación con Microsoft Visual Studio 2005, el símbolo del sistema de Visual Studio 2005, o si tiene instalado Platform SDK y está especificado en una ruta de acceso de inclusión.

Comentarios

Este ejemplo muestra los nuevos métodos AddMemoryPressure y RemoveMemoryPressure de la clase GC. Estos métodos puede emplearlos para cambiar el modelo de la estrategia de recolección de elementos no utilizados para las colecciones generación cero. Debe utilizarlos para dar una sugerencia al recolector de elementos no utilizados (GC), cada vez que el número de recursos no administrados asignado sea sensiblemente superior a la memoria administrada para los mismos recursos. Sin esta sugerencia, el recolector no es consciente de la cantidad de memoria no administrada y, por lo tanto, puede seguir una estrategia de recolección no óptima.

Basta con que ejecute el ejemplo y observe el número de asignaciones correctas alterando y sin alterar la necesidad de memoria (observará que las asignaciones tienen más éxito cuando la necesidad de memoria se altera adecuadamente). Así mismo, observe el efecto que tiene el hecho de agregar necesidad de memoria en el número de colecciones generación cero realizadas, lo que demuestra que el recolector está realizando varias colecciones más cuando se agrega necesidad de memoria.

Recuerde que siempre que agregue necesidad de memoria debe eliminarla en la misma medida posteriormente.