2009-09-26 7 views

Respuesta

4

Ejecute el programa en un shell. Abra otro shell y ejecute el comando 'top'. enumerará los procesos en ejecución y almacenará mucha memoria que consumen. usted puede, supongo, poll/proc/yourprocessid/stat para ver cuánta memoria está usando con el tiempo.

+0

hmm, esto es genial, es como el comando ps pero dinámico. aunque mis programas son bastante pequeños, no creo que este método en particular funcione. – user176121

+0

oh si este es un programa corto. simplemente póngalo en el bucle mientras lo está mirando en el 'top' para i en {1..3}; hacer ps; hecho; ejecuta ps 3 veces. O si puede editar su programa, agregue un descanso al final para que tenga tiempo de hacer 'ps' antes de que termine el programa – discovlad

+0

Normalmente en la parte superior tomo la columna 'RES' (tamaño residente) menos la columna 'SHR' (tamaño de memoria compartida). En la mayoría de los casos, proporciona una buena indicación de cuánto está realmente usando su programa. – Benjamin

0

Depende de su sistema operativo; es de esperar que cuente con herramientas que le indiquen la memoria consumida cuando se ejecutan las aplicaciones.

Intentar inferir la respuesta inspeccionando el código sería muy difícil, ejecute las aplicaciones, use los diagnosticos de su plataforma.

0

Dependiendo del tamaño de los programas, esto podría ser casi inviable.

Si no son muy grandes, puede ver cuánta memoria asignan; por ejemplo, una int ocuparía 4 bytes, una char tendría 1 byte, etc. El ensamblaje es muy transparente en la cantidad de memoria que está usando, incluso en una máquina x86. Cpp es casi tan transparente, siempre y cuando siga fielmente la creación de objetos y la destrucción/asignación de memoria.

Si el programa es enorme, necesitará utilizar herramientas específicas para rastrear/perfilar el uso de memoria, como GlowCode (http://www.glowcode.com/summary.htm).

3

El administrador de tareas de Windows puede mostrarle el uso de memoria de cada proceso. Supongo que podrías usar Valgrind en su lugar, pero no veo el punto en eso. En Linux, use Valgrind o ps.

+0

En la pestaña Procesos del Administrador de tareas, puede usar Ver-> Seleccionar columnas ... para seleccionar estadísticas de uso de memoria adicionales. – Clifford

0

En Windows, puede usar el Monitor de rendimiento de Microsoft para hacerlo. Start, Run, "perfmon". Esta herramienta informará sobre todo tipo de estadísticas sobre procesos y proporcionará gráficos para usted. En general, le interesará informar sobre el "conjunto de trabajo privado". Esto le dirá la cantidad de memoria que su proceso ha reservado para su propio uso.

Si solo quiere obtener el uso de su montón, y desea hacerlo programáticamente, debe consultar el CRT Debug Heap.

No estoy seguro acerca de Linux, lo siento.

0

En Windows, he encontrado Address Space Monitor muy útil, especialmente para observar el grado de fragmentación es su memoria.

4

En Linux, intente valgrind. Es una herramienta increíble con muchas características para que los simples mortales comprendan por completo. Eche un vistazo a valgrind 's massif.

+0

Es muy útil, pero el macizo analiza la memoria del montón solo de forma predeterminada. Como podemos leer en [link] (http://valgrind.org/docs/manual/ms-manual.html): "De forma predeterminada, el perfil de la pila está desactivado, ya que ralentiza enormemente Massif [...] El perfil de pila se puede activar con la opción --stacks = yes ". – Zaimatsu

5

En Windows puede usar el Monitor de rendimiento.

uso del monitor de rendimiento

  • Start Monitor de rendimiento desde el menú Inicio/Herramientas administrativas/Rendimiento

  • Si desea iniciar el registro:

  • Seleccionar registro de rendimiento y alerta > Opción de registro actual en el lado izquierdo del navegador.

  • Seleccione Nueva configuración de registro.

  • Ponga un nombre apropiado para el registro, p. Performance_Server para el servidor

  • Le mostrará un menú. En las pestañas "generales", haga clic en el botón Agregar y seleccione el proceso que desea monitorear. (Cambie el objeto de rendimiento a procesar, para "seleccionar contadores de la lista", seleccione "bytes privados", para "seleccionar instancias de la lista", seleccione el proceso que desea supervisar). Después de eso, haga clic en Agregar y cerrar. Ahora cambie el intervalo según el requisito del caso de prueba. Ahora vaya a la pestaña "archivos de registro", cambie el tipo de archivo de registro a formato csv o tsv. Ahora aplica y presiona OK.

  • Si desea iniciar/detener la tala:

  • Seleccione el registro en particular que desea iniciar y detener.

  • En la barra de herramientas de arriba verá el botón de inicio y parada.

  • Si desea comprobar el contenido de un archivo de registro:

  • Haga clic en Opciones/Datos De ...

  • Seleccione el archivo de registro para ser visto, haga clic en Aceptar

  • Ir a la pantalla gráfica (Ver/Gráfico)

  • Haga clic en Editar/Añadir a trazar

  • Agregue los elementos necesarios al gráfico.(En caso de que la fuga de memoria deba verificarse, debe ver los PrivateBytes de los procesos y el _Total de ellos)

  • Lea los valores del gráfico (los valores Mín. Y Máx. Se muestran en la parte inferior del gráfico)

  • Si desea supervisar la transferencia de la red:

  • de visualización de la pantalla gráfica (Ver/Gráfico)

  • Haga clic en Editar/Añadir a registrar, y seleccionar los elementos de la interfaz de red \ Bytes enviados Si lo configura en dl

  • o red inerface \ Bytes recibidos si se establece en el CRS-PC +

  • Haga clic en Hecho

  • uso de la memoria del monitor:

  • En menú Inicio/Programas/Herramientas administrativas/inicio Rendimiento del programa monitor

  • Haga clic en el botón para abrir la ventana que agrega procesos

  • llenar los campos de la siguiente manera:

  • Objeto: Proceso

  • Contador: Bytes privados

  • Instancia: un proceso cuya memoria ocupación necesitar ser visualizado

  • Haga clic en el botón Agregar

  • Repita los dos últimos pasos para cada proceso que la memoria debe mostrarse

  • Cierre la ventana que agrega procesos

  • En la parte inferior de la ventana Monitor de rendimiento, no es la lista de los procesos previamente seleccionado.

Cómo utilizar los datos registrados

  1. Ahora abre el archivo Perfmon_.csv o Perfmon_.tsv con WordPad o Excel.

Si ha abierto el archivo con Excel, utilice la opción Guardar como, guarde el archivo en formato Microsoft Excel.

Cuestiones relacionadas