Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.3.3. Cómo perfilar montículo y espacio de montículo con Massif

Massif mide el espacio de montículo usado por un determinado programa; tanto el espacio útil como cualquier espacio adicional asignado para propósitos de contabilidad y alineación. Massif puede ayudar a reducir la cantidad de memoria utilizada por su programa,lo cual puede aumentar la velocidad del programa y reducir la posibilidad de que el programa agote el espacio de la máquina en la cual se ejecuta. Massif también proporciona información sobre las partes del programa responsables de asignar la memoria de montículo. Los programas que se ejecutan con Massif son aproximadamente veinte veces más lentas que la velocidad de ejecución normal.
Para perfilar el uso de montículo de un programa, especifique massif como la herramienta de Valgrind que desea utilizar:
# valgrind --tool=massif program
El perfilado de datos reunidos por Massif se escribe a un archivo, el cual se denomina de forma predeterminada massif.out.pid, donde pid es el ID del proceso del programa especificado.
El perfilado de datos pueden graficarse con el comando ms_print, así:
# ms_print massif.out.pid
Produce una gráfica que muestra el consumo de memoria en la ejecución del programa, y la información detallada sobre los sitios responsables de asignar en varios puntos en el programa, incluido en el punto de asignación de memoria máxima.
Massif proporciona una cantidad de opciones de línea de comando que sirven para dirigir la salida de la herramienta. Algunas de las opciones disponibles son:
--heap
Especifica si realiza o no el perfilado de montículo. El valor predeterminado es yes. El perfilado de montículo puede ser desactivado al establecer esta opción a no.
--heap-admin
Especifica el número de bytes por bloque a usar para administrar el perfilado de montículo. El valor predeterminado es de 8 bytes por bloque.
--stacks
Especifica si realiza o no el perfilado de pila. El valor predeterminado es no (desactivado). Para habilitar el perfilado de pila, establezca esta opción a yes, pero tenga en cuenta que al hacerlo ralentizará ampliamente a Massif. Observe también que Massif supone que la pila principal tiene un tamaño de cero al inicio para indicar el tamaño de porción de pila sobre el cual el ente perfilado tiene control.
--time-unit
Especifica la unidad de tiempo utilizada para el perfilado. Hay tres valores válidos para esta opción: instrucciones ejecutadas (i), el valor predeterminado, el cual es útil en la mayoría de los casos; tiempo real (ms, en milisegundos), el cual puede ser útil en algunos casos; y bytes asignados o desasignados en el montículo y/o en la pila (B), el cual sirve para la mayoría de programas de ejecución corta y para pruebas, porque es el más reproducible a través de diferentes máquinas. Esta opción sirve para graficar salida de Massif con ms_print.
Para obtener una lista completa de las opciones, consulte la documentación incluida en /usr/share/doc/valgrind-version/valgrind_manual.pdf.