En esta sección se describen las funciones de la interfaz gráfica del analizador y cómo utilizarlas. La información se ha dividido como sigue:
El cuadro de diálogo Profiler Options contiene las fichas:
Use las opciones de estas fichas para indicar qué objetos se analizan y qué elementos aparecen en el análisis.
Tras especificar las opciones del analizador, haga clic en OK para iniciarlo. Según la configuración del proyecto, el analizador realiza uno de estos dos procesos:
Si utiliza un proyecto normal de Identity Manager con una instancia incrustada de Identity Manager, el analizador efectúa una compilación completa, la implementa en el servidor de aplicaciones de NetBean e inicia el analizador.
Si utiliza un proyecto normal de Identity Manager con una instancia externa de Identity Manager o el proyecto remoto de Identity Manager, el analizador se conecta a la instancia de Identity Manager configurada para el proyecto.
Puede seleccionar IdM -> Set Identity Manager Instance para controlar la acción de la instancia de Identity Manager para el proyecto.
La ficha Mode ofrece las siguientes opciones:
IDM Objects Only (Sólo objetos de IDM): seleccione esta opción para analizar objetos de formulario, regla, flujos de trabajo y XPRESS. Excluye los objetos de Java del análisis.
Java and IDM Objects (Objetos de Java e IDM): seleccione esta opción para analizar objetos de formulario, Java, reglas, flujos de trabajo y XPRESS.
La opción Java and IDM Objects no está disponible cuando se utiliza un proyecto normal de Identity Manager con una instancia externa de Identity Manager o si se utiliza un proyecto remoto de Identity Manager.
No es posible cambiar la opción Mode mientras se ejecuta el analizador. Para ello debe detener el analizador.
La ficha IDM Object Filters ofrece las siguientes opciones:
Show IDM Object details
Marque esta casilla para incluir en la instantánea cada elemento ejecutado de formulario, flujo de trabajo y XPRESS.
Desactive esta casilla para incluir en la instantánea sólo los siguientes elementos:
<invoke>
<new>
<Rule>
<Form>
<WFProcess>
<ExScript>
<ExDefun>
<FieldRef>
<Action> (para llamadas de aplicación de flujo de trabajo)
Include Anonymous Sources
Anonymous sources (orígenes anónimos) son formularios (o partes de ellos) que se generan sobre la marcha (como los formularios Login y MissingFields) y no corresponden a un formulario persistente situado en el repositorio de Identity Manager.
Marque esta casilla para incluir orígenes anónimos en la instantánea.
Desactive esta casilla para excluir los orígenes anónimos de la instantánea.
Seleccione la ficha Java Filters para:
Incluir o excluir filtros de Java
Crear filtros nuevos
Borrar filtros existentes
Restaurar los filtros predeterminados
Los filtros de Java se suministran en patrones de métodos y se expresan mediante patrones que incluyen o excluyen aplicando un nombre de método canónico. Un nombre de método canónico es:
nombre-clase-completamente-calificado.nombre-método( tipo-parámetro-1, tipo-parámetro-2, ... )
En los constructores, nombre-método es <init>.
He aquí algunos ejemplos:
Para excluir todos los constructores, active la casilla Exclude y añada el filtro siguiente:
*.<init>(*)
Para excluir todos los constructores con un solo parámetro org.w3c.dom.Element, active la casilla Exclude y añada el filtro siguiente:
*.<init>(org.w3c.dom.Element)
Para excluir todas las clases de Identity Manager, active la casilla Exclude y añada los filtros siguientes:
"com.waveset.*" "com.sun.idm.*"
Para instrumentar sólo el código personalizado, desactive la casilla Exclude, suprima el filtro * include inicial y añada luego el filtro siguiente:
"com.yourcompany.*"
Los dos últimos ejemplos son equivalentes porque los filtros se aplican sólo a las clases personalizadas y a las de Identity Manager.
Si es preciso, puede instrumentar otros jar modificando como interese las líneas siguientes en build.xml. Por ejemplo:
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}"> <fileset dir="${lighthouse-dir}/WEB-INF"> <include name="lib/idm*.jar"/> <include name="classes/**/*.class"/> </fileset> </instrument> |
De forma predeterminada, la configuración incluye todas las clases personalizadas y la mayoría de las clases de Identity Manager. Se excluyen forzosamente diversas clases de Identity Manager, ya que su habilitación interrumpiría el analizador.
Por ejemplo, se excluyen las clases de los motores de flujo de trabajo, formularios y XPRESS porque, de lo contrario, el analizador generaría una instantánea ininteligible al analizar objetos de Java e Identity Manager:
Los filtros de Java ofrecen mucha más granularidad de filtrado que los de objeto de IDM. La instrumentación de Java sobrecarga significativamente el tiempo de ejecución, lo que puede sesgar radicalmente los resultados del análisis. Como los objetos de Identity Manager se interpretan en lugar de compilarse, apenas hay sobrecarga de instrumentación. De ahí que, por ejemplo, no haya razones básicas para excluir el flujo de trabajo A e incluir el flujo de trabajo B, etc.
No es posible modificar los filtros de Java mientras se ejecuta el analizador. Antes debe detener el analizador.
La ficha Miscellaneous ofrece las siguientes opciones:
Prune snapshot nodes where execution time is 0:
Desactive esta opción (valor predeterminado) si quiere que la instantánea incluya información de invocación para todas las entidades ejecutadas, incluso aquellas cuyo tiempo de ejecución es cero.
El número de invocaciones puede resultar útil, incluso para los nodos sin tiempo de ejecución.
Active esta opción para suprimir dichos nodos, lo que le permitirá centrarse en los datos más relevantes del análisis. Además, al activar esta opción se puede reducir drásticamente el tamaño de la instantánea del analizador.
Automatically Open Browser Upon Profiler Start:
Active esta opción (valor predeterminado) cuando ejecute el analizador para abrir automáticamente un navegador que señale a la instancia de Identity Manager analizada.
Desactive esta opción si no quiere abrir un navegador.
Include Java Sources in Snapshot:
Active esta opción (valor predeterminado) para incluir orígenes Java con todos los métodos Java referenciados por los datos del análisis en la instantánea. Siempre debe aplicarse esta opción a las instantáneas del campo. El código Java personalizado es relativamente pequeño y muy valioso por su utilidad.
Desactive esta opción si va a analizar Identity Manager y tiene disponible el origen completo de Identity Manager.
En tales circunstancias, no interesa incluir el origen de Identity Manager, ya que puede generar instantáneas gigantescas. (Consulte Búsqueda y gestión de orígenes en el analizador para obtener más información.)
La vista del analizador de IDM contiene las áreas:
El área Current Project consta de un menú descendente que contiene todos los proyectos actuales. Use este menú para seleccionar el proyecto que desea analizar.
El área Controls contiene cuatro iconos, descritos en la tabla siguiente:
Icono |
Nombre |
Función |
---|---|---|
|
Iniciar analizador de Identity Manager |
Inicia el analizador y abre el cuadro de diálogo Profiler Options. |
|
Detener analizador de Identity Manager |
Detiene el analizador. |
|
Restaurar resultados recogidos |
Restaura todos los resultados del análisis recogidos hasta ese momento. |
|
Modificar análisis |
Vuelve a abrir el cuadro de diálogo Profiler Options para que pueda cambiar las opciones que desee a fin de modificar los resultados del análisis actual. |
El área Status le indica si está conectado al sistema principal y le ofrece información de estado conforme el analizador se inicia, se ejecuta y se detiene.
El área Profiling Results contiene dos iconos, descritos en la tabla siguiente:
Icono |
Nombre |
Función |
---|---|---|
|
Iniciar analizador de Identity Manager |
Inicia el analizador y abre el cuadro de diálogo Profiler Options. |
|
Restaurar resultados recogidos |
Restaura todos los resultados del análisis recogidos hasta ese momento. |
El área Saved Snapshots contiene una lista de todas las instantáneas guardadas.
Las instrucciones para guardar instantáneas se encuentran en Guardar una instantánea.
Además, puede usar uno de los botones siguientes para administrar esas instantáneas:
Open: sirve para abrir las instantáneas guardadas en la ventana de vista de instantáneas.
También se puede hacer doble clic en una instantánea de la lista Saved Snapshots para abrirla.
Delete: para eliminar una instantánea, selecciónela en la lista Saved Snapshots y después haga clic en este botón.
Save as: para guardar una instantánea en una ubicación externa arbitraria, selecciónela en la lista y después haga clic en este botón.
Load: sirve para abrir en la ventana de vista de instantáneas una instantánea situada en una ubicación arbitraria.
Al abrir una instantánea, los resultados aparecen en la ventana de vista de instantáneas, situada en el lado superior derecho de Identity Manager IDE.
Una instantánea ofrece varias vistas de los datos, que se describen en las secciones siguientes:
La vista de llamadas en árbol contiene una tabla de árbol con el control del tiempo de llamada y el recuento de invocaciones en todo el sistema.
Esta tabla contiene tres columnas:
Columna Call Tree: muestra una lista de todos los nodos.
Los nodos de nivel superior son uno de los siguientes:
Métodos Thread.run() para diversos threads de segundo plano en el sistema.
Por ejemplo, si habilita análisis de Java, aparece el método ReconTask.WorkerThread.run().
Controles del tiempo de solicitud
Por ejemplo, si observa la URL idm/login.jsp, observará una entrada de nivel superior para idm/login.jsp. Los datos mostrados en la columna Time de esta entrada representan el tiempo total de esa solicitud o solicitudes. Los datos mostrados en la columna Invocations representan el número total de invocaciones a esa página. Puede estudiar mejor esos datos para averiguar qué llamadas han intervenido en su tiempo.
El árbol de llamadas también contiene nodos con tiempo propio. Los valores de tiempo propio indican cuánto tiempo se ha invertido en el nodo en sí. (Para obtener más información, consulte Advertencias sobre estadísticas.)
Columna Time: muestra el tiempo invertido en cada nodo cuando se le llamó desde su nodo principal. Los porcentajes son relativos al tiempo principal.
Columna Invocations: Indica cuántas veces se ha invocado cada nodo desde su principal.
La vista de zonas activas ofrece una lista lineal de nodos con los controles acumulados de tiempo de llamadas, independientemente del elemento principal.
Esta vista contiene las siguientes columnas:
Self Time: muestra el tiempo total invertido en cada nodo.
Invocations: indica el número total de veces que se ha llamado a cada nodo desde su nodo principal.
Time: muestra el tiempo total invertido en cada nodo y en todos sus secundarios.
La vista de retroseguimientos proporciona una pila de llamadas invertida con todas las cadenas de llamada desde las que se ha llamado el nodo.
Puede usar estas estadísticas para responder a la pregunta: ¿Cuánto tiempo ahorraría si eliminase esta cadena de llamada concreta de este nodo?
Puede acceder a la vista de retroseguimientos desde cualquiera de las demás vistas de instantáneas haciendo clic con el botón secundario en un nodo (denominado nodo raíz) y seleccionando Show Back Traces en el menú emergente.
Los valores de datos de Time e Invocations tienen un significado distinto en la vista de retroseguimientos:
Time: los valores de esta columna representan el tiempo invertido en el nodo raíz cuando se le llama desde una cadena determinada.
Invocations: los valores de esta columna representan el número de veces que se ha llamado al nodo raíz desde una cadena de llamada determinada.
La vista de receptores de llamadas muestra un árbol de llamadas agregadas de un nodo (denominado nodo raíz), cualquiera que sea la cadena principal.
Estas estadísticas resultan útiles cuando hay un área problemática que se llama desde muchos lugares mediante el árbol de llamadas maestro y se desea ver el análisis global del nodo.
Puede acceder a la vista de receptores de llamadas desde cualquiera de las demás vistas de instantáneas haciendo clic con el botón secundario en un nodo (denominado nodo raíz) y seleccionando Show Callees en el menú emergente.
Los valores de datos de Time e Invocations de la vista de receptores de llamadas tienen el mismo significado que los de la vista de llamadas en árbol.
Al hacer clic con el botón secundario en una vista de llamadas en árbol o de zonas activas, aparece un menú emergente con las opciones descritas en la tabla siguiente:
Opción de menú |
Descripción |
---|---|
GoTo Source |
Seleccione esta opción para ver el origen XML de un nodo que corresponda a un método Java, flujo de trabajo, formulario, regla o XPRESS. Para obtener información detallada sobre esta vista, consulte Búsqueda y gestión de orígenes en el analizador. |
Show Back Traces |
Seleccione esta opción para acceder a la vista de retroseguimientos. Para obtener información detallada sobre esta vista, consulte Vista de retroseguimientos. |
Show Callees |
Seleccione esta opción para acceder a la vista de receptores de llamadas. Para obtener información detallada sobre esta vista, consulte Vista de receptores de llamadas. |
Find In Hotspots |
Seleccione esta opción para buscar un nodo en la vista de zonas activas. Para obtener más información sobre esta vista, consulte Vista de zonas activas. |
List Options -> Sort -> |
Seleccione esta opción para ordenar por:
|
List Options -> Change Visible Columns |
Seleccione esta opción para cambiar las columnas mostradas en la lista de árbol de llamadas o zonas activas. En el cuadro de diálogo Change Visible Columns puede especificar una o varias de las opciones siguientes:
|
Utilice el icono de búsqueda , situado en la parte superior de la ventana de la vista de instantáneas, para buscar nodos por su nombre en las vistas del árbol de llamadas o de zonas activas.
Otra posibilidad es hacer clic con el botón secundario en la vista de llamadas en árbol o de zonas activas y seleccionar Find in Call Tree o Find in Hotspots (respectivamente) en el menú emergente para buscar un nodo.
El analizador ofrece varias opciones para guardar una instantánea. Encontrará una descripción de estas opciones en la tabla siguiente:
Icono |
Nombre |
Función |
---|---|---|
|
Icono Guardar instantánea en el proyecto (ubicado en la parte superior de la ventana de vista de instantáneas) |
Guarda la instantánea en el directorio nbproject/private/idm-profiler del proyecto. Las instantáneas guardadas en el proyecto aparecen en la sección Saved Snapshots de la vista del analizador. |
|
Icono Guardar instantánea externamente (ubicado en la parte superior de la ventana de vista de instantáneas) |
Guarda la instantánea en una ubicación externa arbitraria. |
|
Botón Save As (situado en el área Saved Snapshots) |
Guarda la instantánea en una ubicación externa arbitraria. |