Scroll to navigation

READPROFILE(1) Manual del Programador de Linux READPROFILE(1)

NOMBRE

readprofile - una herramienta para leer la información del perfil(profile) del núcleo

SINOPSIS

readprofile[options]

VERSIÓN

Esta página de manual documenta la versión 2.0 del programa.

DESCRIPCIÓN

El comandoreadprofileusa la información de/proc/profilepara imprimir datos ASCII por la salida estándar.La salida está organizada en tres columnas: la primera es el número deimpulsos de reloj, la segunda es el nombre de la función C en el núcleodonde esos impulsos ocurrieron y el tercero es la `carga' normalizadadel procedimiento, calculada como un ratio entre el número de impulsos dereloj y la duración del procedimiento. La salida es rellenada conespacios en blanco para mejorar la lectura.

Las opciones de línea de comandos disponibles son los siguientes:

-m mapfile
Especifica un fichero de mapa, el defecto es/usr/src/linux/System.map.Puede especificar el fichero de mapa en la línea de comandos si su núcleoactual no es el último que compiló. Si el nombre del fichero de mapatermina con `.gz' es descomprimido transparentemente.

-p pro-file
Especifica un búffer de perfil diferente, por defecto es/proc/profile.Es útil especificar un nuevo búffer si desea tener una `instantánea' delperfil del núcleo en un instante determinado y desea leerla más tarde.El fichero/proc/profilepuede ser copiado usando `cat' o `cp'. No existe soporte para buffers deperfil comprimidos, como enreadprofile-1.1,porque el programa necesita saber de antemano el tamaño del buffer.

Información. Esto hace quereadprofilesólo imprima el paso de perfil usado por el núcleo.El `paso de perfil' es la resolución del buffer de perfil y esseleccionado durante la configuración del núcleo (a través de `makeconfig'), o en la línea de comandos del núcleo.

Si la opción-t(conciso) es usada junto con-isólo se imprime el número decimal.

Imprime todos los símbolos del fichero de mapa. Por defecto losprocedimientos con 0 impulsos de reloj no son impresos.

Reiniciar el buffer de perfil. Esto sólo puede ser invocado por elusuario root, porque/proc/profilepuede ser leído por cualquiera pero sólo puede ser modificado por elsuperusuario. De todas maneras, puede hacerreadprofilesetuid 0, para poder reiniciar el buffer sin necesidad de losprivilegios.

Prolijo. La salida es organizada en cuatro columnas y rellenada conblancos. La primera columna es la dirección RAM de la función del núcleo,la segunda es el nombre de la función, la tercera es el número deimpulsos de reloj y la última es la carga normalizada.

Versión. Esto hace quereadprofileimprima su número de versión y termine.

EJEMPLOS

Ver el buffer de perfil ordenándolo por impulsos de reloj:


readprofile | sort -nr | less

Imprimir los 20 procedimientos más cargados:


readprofile | sort -nr +2 | head -20

Imprimir sólo el perfil del sistema de ficheros:


readprofile | grep _ext2

Mirar toda la información del núcleo, con las direcciones de RAM:


readprofile -av | less

Ver una `instantánea' del buffer de perfil para un núcleo que no esel actual:


readprofile -p ~/profile.instantanea -m /zImage.map.gz

FALLOS

readprofilesólo funciona con núcleos 1.3.x o superiores, porque/proc/profilecambió en el paso entre el 1.2 y el 1.3

Este programa sólo funciona con núcleos ELF. El cambio para núcleos a.outes trivial y se deja como ejercicio para el usuario de a.out.

Para habilitar el perfil, el núcleo debe ser reiniciado, porque noexiste un módulo para el perfil y no sería fácil de implementar. Parahabilitar el perfil, debe especificar "profile=2" (u otro número) enla línea de comandos del núcleo. El número que especifique es elexponente de dos usado como paso de perfil.

El perfil se encuentra deshabilitado cuando las interrupciones sondeshabilitadas. Esto significa que muchos de los impulsos de relojocurren cuando las interrupciones se habilitan de nuevo. Guardeatención con la información que puede inducirle a error.

FICHEROS

/proc/profile              Una imagen binaria del buffer de perfil.
/usr/src/linux/System.map  El mapa de símbolos del núcleo.
/usr/src/linux/*           El programa que se está perfilando :-)

Mayo 1996 4th Berkeley Distribution