2009-06-02 18 views
6

¿Hay alguna manera de registrar la huella de memoria? De una manera que después de que el proceso haya terminado todavía podemos tener acceso a él.Recording Footprint de memoria en Linux

La forma típica puedo comprobar el consumo de memoria es la siguiente:

$ cat /proc/PID/status 

Pero de ninguna manera que existe después de que el proceso ha terminado.

+0

Pregunta similar en Server Fault: http://serverfault.com/questions/11754/running-batch-jobs-and-getting-a-peak-memory-usage-summary-for-each-job/12066 – MikeyB

Respuesta

5

se puede hacer algo como:

watch 'grep VmSize /proc/PID/status >> log' 

cuando el programa termina usted tendrá una lista de capacidad de memoria con el tiempo en log.

+0

@Nathan: gracias. Por cierto, ¿cómo puedo liberar este comando tuyo al mismo tiempo "junto" con mi comando? Tal que no habrá ningún retraso entre los dos. – neversaint

+1

Probablemente su mejor opción sea tener un script de envoltura para llamar al programa y luego ejecutar el comando que sugerí. Todavía tendrá un retraso de tiempo, pero será más corto que hacerlo manualmente –

4

Valgrind tiene un perfilador de memoria denominada Massif que proporciona información detallada sobre el uso de la memoria de su programa:

macizo es un generador de perfiles montón. Realiza perfiles de montón detallados tomando instantáneas regulares del montón de un programa. Produce un gráfico que muestra el uso del montón a lo largo del tiempo, incluida la información sobre qué partes del programa son responsables de la mayoría de las asignaciones de memoria. El gráfico se complementa con un archivo de texto o HTML que incluye más información para determinar dónde se asigna la mayor cantidad de memoria. Massif ejecuta programas aproximadamente 20 veces más lento de lo normal.

Cuestiones relacionadas