Herramientas de perfilado de datos de bajo nivel

En un segundo plano, Asesor de rendimiento de Rational Developer for AIX and Linux utiliza una serie de herramientas de perfilado de datos de bajo nivel en la máquina AIX o Linux. Estas herramientas incluyen tprof, oprofile, procstack, ps, IBM Debug Engine, e informes de transformación de compilador.

tprof

En el sistema operativo AIX, el programa de utilidad tprof es la principal fuente de datos de perfilado de bajo nivel. tprof se utiliza para perfilar dónde se está empleando el tiempo de ejecución de procesador en la aplicación.

El programa de utilidad tprof funciona de la siguiente manera. Cada 10 milisegundos, tprof toma nota del punto en ejecución en ese momento en el binario de la aplicación. Cada punto anotado se denomina una "marca". La distribución de estas marcas, a lo largo del tiempo de vida de la ejecución de la aplicación, indica aproximadamente cuánto tiempo de procesador se utilizó en diversas ubicaciones en toda la aplicación.

Los datos de perfilado de bajo nivel obtenidos de tprof son utilizados por un número de vistas. El Navegador de puntos calientes utiliza los datos para visualizar una clasificación de las funciones activas de la aplicación. El Visor de fuente de rendimiento y Vista Esquema utilizan los datos para proporcionar los valores de las marcas que se visualizan en líneas o secciones del código fuente. El Navegador de comparación de puntos calientes utiliza los datos para obtener los valores de marca para la comparación.

Encontrará información más detallada sobre el programa de utilidad tprof de AIX en el sitio web IBM AIX Information Center: Mandato tprof.

procstack

En el sistema operativo AIX, el programa de utilidad procstack se utiliza para perfilar los llamadores y los llamados de las funciones. Cada segundo, procstack localiza la función en ejecución en ese momento de la aplicación y recorre la vía de la llamada para determinar la cadena de funciones utilizadas para alcanzar la función actualmente en ejecución. La vía de llamada se recorre hasta la función main() de la aplicación. El Navegador de invocaciones compone y utiliza esta información de llamada a método.

El programa de utilidad procstack proporciona cada cadena de llamadas muestreada para la construcción del Navegador de invocaciones. Dado que la información no se añade a un gráfico de llamada, el Navegador de invocaciones de AIX basado en procstack no sufre posibles vías falsas, comparado con el programa de utilidad oprofile de Linux.

Encontrará información más detallada sobre el programa de utilidad procstack de AIX en el sitio web IBM AIX Information Center: Mandato procstack.

oprofile

En el sistema operativo Linux, el programa de utilidad oprofile desempeña el mismo papel que tprof en AIX, sirviendo como principal fuente de datos de perfilado de bajo nivel. El programa de utilidad oprofile funciona de la misma manera que tprof en AIX. Sin embargo, la frecuencia de muestreo que se utiliza es cada 150.000 ciclos de procesador. En un procesador de 3,5 GHz, esto equivaldría a cada 43 microsegundos.

De forma parecida a tprof en AIX, los datos de oprofile en Linux son utilizados por el Navegador de puntos calientes, el Visor de fuente de rendimiento, la Vista Esquema y el Navegador de comparación de puntos calientes.

En el sistema operativo Linux, el programa de utilidad oprofile también perfila la relación de llamada entre funciones. El Navegador de invocaciones utiliza esta información para visualizar información de vía de llamada de cada función.

oprofile realiza el recorrido de vía de llamada más frecuentemente que procstack en AIX, en el orden de cada 43 microsegundos. Sin embargo, debido a la mayor frecuencia de muestreo y también debido a las limitaciones de oprofile, la vía de llamada se recorre de vuelta a una profundidad máxima de 2 llamadores. Además, oprofile agrega esta información de llamada a un gráfico de llamada en vez de a un árbol de llamadas. Una implicación importante al utilizar un gráfico en lugar de un árbol es que los gráficos podrían mostrar vías o recurrencias que no existen realmente en el programa. Esta característica está presente ya que los gráficos agregan información, lo que provoca la pérdida de información. El fenómeno es similar a cómo, en las estadísticas, se pierde una cierta cantidad de información cuando sólo se conserva un valor promedio de un conjunto de números. La información como la distribución del conjunto de números no se conserva. En el contexto de información de llamada, donde un nodo (función/método) puede aparecer más de una vez en un árbol de llamada, un gráfico de llamada fusiona esos nodos en un solo nodo, lo que da como resultado la pérdida de una cierta cantidad de información.

La implicación de esta característica es que el usuario debe tener en cuenta las posibles vías falsas en un Navegador de invocaciones basado en oprofile de Linux. Tenga en cuenta que el Navegador de invocaciones basado en procstack de AIX no sufre estas posibles vías falsas porque no agrega la información.

Encontrará información más detallada sobre el programa de utilidad oprofile de Linux en el Sitio web de oprofile.

ps

El programa de utilidad ps se utiliza en los sistemas operativos AIX y Linux para proporcionar información sobre los procesos que se ejecutan en la máquina durante el perfilado de la aplicación. Esta información se utiliza para detectar qué procesos pertenecen a la aplicación, en el caso de que la aplicación sea una aplicación multiproceso o se lance desde un script de shell de Unix. Además, también proporciona información básica acerca de cada proceso, como por ejemplo su nombre y argumentos y el proceso padre. El Navegador de puntos calientes utiliza esta información para visualizar información de proceso.

Encontrará información más detallada sobre el programa de utilidad ps de AIX en el sitio web IBM AIX Information Center: Mandato ps.

Motor de depuración de IBM

Un componente del Motor de depuración de IBM se utiliza en los sistemas operativos AIX y Linux para extraer información de depurador del binario de la aplicación. Por ejemplo, se utiliza para correlacionar ubicaciones en código ejecutable a archivos fuente y líneas. El Visor de fuente de rendimiento y la Vista Esquema utilizan esta información de correlación para visualizar porcentajes y valores de "marca" junto a líneas de fuente o bloques de código fuente del código de la aplicación.

Informes de transformación de compilador IBM XL

La vista Recomendaciones toma datos de perfilado de diversos orígenes, como los mencionados anteriormente, y los correlaciona para encontrar patrones relevantes. Una de sus principales fuentes de datos para aplicaciones C/C++ proviene de informes de transformación de compilador del compilador IBM XL. Si la aplicación se compila con el compilador IBM XL C/C++ (XL C/C++ V11.1 o superior), el compilador puede notificar información sobre su análisis del código de aplicación, por ejemplo intentos de optimización del código fuente satisfactorios y no satisfactorios. Por ejemplo, el compilador informa de intentos de incorporación de función (o método) y su éxito o fracaso. El compilador también informa de qué distintivos de compilación estaban en vigor para cada archivo de código fuente. Esta información se utiliza para proporcionar recomendaciones en la vista de recomendaciones.

Para versiones anteriores del Compilador IBM XL que no proporcionan informes de transformación de compilador (anteriores a la V11.1), este tipo de información se extrae de la salida de compilación estándar del compilador. Como consecuencia, requiere que el usuario "limpie" y "construya" la aplicación para que pueda capturarse este tipo de información. La cantidad de información obtenida de este modo no es tan rica como la obtenida de los informes de transformación del Compilador XL, de modo que el tipo de recomendaciones proporcionadas en la Vista Recomendaciones se reduce.

Información de transformación del Compilador GCC

El compilador GCC todavía no proporciona informes de transformación de compilador. Para obtener información del compilador para su uso en la Vista Recomendaciones, este tipo de información se extrae de la salida de compilación estándar del compilador. Como consecuencia, requiere que el usuario "limpie" y "construya" la aplicación para que pueda capturarse este tipo de información. Las limitaciones de la vista de recomendaciones son similares a las de compiladores XL antiguos que no proporcionan informes de transformación.


Comentarios