Etiquetas de pila
En windows® Analizador de rendimiento (WPA), las etiquetas de pila son una característica que permite crear etiquetas (etiquetas) para ayudarle a identificar mejor qué partes de las pilas de llamadas se ven afectadas.
Descripción de las diferencias entre las etiquetas de pila y las etiquetas de marco de pila
Puede pensar en las etiquetas de pila (etiquetas de marco) y de pila como dos vistas de los mismos datos disponibles en la columna Pila . Puede configurar una columna de pila para que se vea como una etiqueta de pila o una columna de pila (etiqueta de marco) en el Editor de vistas.
Una pila de llamadas consta de una lista de fotogramas. Si una pila de llamadas está en forma de A -> B -> C, hay tres marcos: A, B y C. Las columnas de pila (etiquetas de marco) asignan cada y cada marco de pila de llamadas a una etiqueta o valores predeterminados del módulo.si no hay ninguna etiqueta.
Por ejemplo, la pila de llamadas A -> B -> C-> D, en la vista Pila (etiquetas de marco) puede convertirse en A -> FrameTagB -> FrameTagC -> D. Cada una de las etiquetas de marco puede tener una jerarquía basada en la jerarquía de definición de las etiquetas del archivo *.stacktags (por ejemplo, el valor real de FrameTagB puede ser "HTML\Script\OM").
Una etiqueta de pila resume toda una pila de llamadas mediante un único nombre de etiqueta. Por ejemplo, la etiqueta de marco más abajo asignada normalmente se convierte en la etiqueta de pila a menos que se especifique prioridad para las etiquetas. Con el mismo ejemplo A -> B -> C -> D, donde la vista de etiquetas de marco es A -> FrameTagB -> FrameTagC -> D, la vista de etiqueta de pila es simplemente: FrameTagC.
Además de la etiqueta normal para el módulo y el método coincidentes exactamente, también puede definir HintTag con HintOperator como Destinatario o Llamador. Por ejemplo, un HintTag con HintOperator como Destinatario se define para B. La pila de llamadas A -> B -> C -> D en la vista Stack (FrameTags) puede convertirse en A -> FrameTagB -> ModuleOfC -> D y su vista StackTag es FrameTagB -> ModuleOfC. El módulo de C se crea dinámicamente como una nueva etiqueta de pila. Establecer explícitamente el atributo OnlyShowModule de HintTag como false haría C como una nueva etiqueta de pila en lugar de ModuleOfC. El atributo OnlyShowModule es true de forma predeterminada. El caso de uso típico es asignar automáticamente funciones de servidor RPC. Su función de llamador directo es rpcrt4.dll! Invoke_epilog1_start. Puede definir un HintTag para esta función de autor de llamada común para lograrlo.
Identificar el costo de una función común mediante la definición de una etiqueta de sugerencia
Normalmente, la columna Etiqueta de pila identifica el costo de una sola función en un solo módulo. Sin embargo, WPA puede consolidar el costo de todas las funciones a las que llama esa función si define una etiqueta de sugerencia y un operador de sugerencia. La etiqueta hint es una etiqueta para la función común y el grupo de funciones a las que llama, y el operador de sugerencia identifica la función común como la función que realiza la llamada, el llamador o la función llamada, el destinatario.
El caso de uso típico es definir una etiqueta de sugerencia para que WPA atribuye automáticamente las funciones del servidor RPC. También puede definir una etiqueta de sugerencia, por ejemplo, para mostrar los soportes de bloqueo o las funciones que asignan montones.
Definición de etiquetas de sugerencia
Las etiquetas de sugerencia y los operadores de sugerencias se definen en XML en la sintaxis siguiente con los atributos y valores descritos en la tabla siguiente.
<HintTag
Name="string-label"
Priority="integer"
HintOperator="caller-or-callee"
OnlyShowModule="Boolean">
<Entrypoint
Module="module-name"
Method="method-name">
</HintTag>
Elemento | Atributo | Descripción |
---|---|---|
HintTag | Nombre | Cadena que se va a usar como etiqueta |
Prioridad | Entero. El valor predeterminado es cero. | |
HintOperator | El valor es "Llamador" o "Destinatario" para la llamada o la función llamada, respectivamente. | |
OnlyShowModule | Boolean, opcional. El valor predeterminado es true. | |
Entrypoint | Módulo | Nombre del módulo que contiene Method. |
Método | Nombre del método que es el punto de entrada. |
Para agregar las etiquetas de sugerencia que ha definido en un archivo XML, use el procedimiento de Agregar etiquetas de pila al archivo de definición de etiquetas de pila, más adelante en este tema.
Ejemplo de uso de una etiqueta de sugerencia
Considere los datos de ejemplo que se muestran en la ilustración siguiente.
En este ejemplo, hay 4 funciones RPC llamadas en WbemCore.dll:
- CWbemLevel1Login::NTLMLogin
- CWbemNamespace::GetObjectW
- CWbemNamespace::P utInstance
- CWbemNamespace::ExecMethod
Poder consolidar el costo de llamar a estas funciones es útil para determinar el costo de las funciones del lado servidor RPC, ya que WPA muestra el gasto total como RPC en la columna Etiqueta de pila .
¡Con el rpcrt4.dll! Invocar función definida como punto de entrada para la etiqueta de sugerencia RPC y el operador de sugerencia especificado como destinatario, WPA representa rpcrt4.dll! Invoque con RPC y wbemcore.dll! CWbemLevel1Login::NTLMLogin con RPC\wbemcore.dll\CWbemLevel1Login::NTLMLogin. Por lo tanto, en la columna Stack Tag (Etiqueta de pila ), WPA muestra el costo de wbemcore.dll! CWbemLevel1Login::NTLMLogin, la función del lado servidor RPC, como 31.855774ms. En WbemCore.dll, NTLMLogin es la función RPC superior de la jerarquía de funciones llamadas.
La etiqueta de sugerencia RPC se define mediante el siguiente XML.
<HintTag Name="RPC" HintOperator="Callee">
<Entrypoint Module="rpcrt4.dll" Method="Invoke"/>
</HintTag>
Adición de etiquetas de pila al archivo de definición de etiquetas de pila
Para agregar una definición de etiqueta de pila al archivo de definición de etiquetas de pila, haga lo siguiente:
En el menú, elija Seguimiento y, a continuación, seleccione Propiedades de seguimiento. Se abre la pestaña Propiedades de seguimiento .
En el área Definición de etiquetas de pila, haga clic en Agregar a la ubicación deseada.
Vaya al área que contiene el archivo de etiquetas de pila, selecciónela y haga clic en Abrir.
Eliminación de una etiqueta de pila del archivo de definición de etiquetas de pila
Para quitar una definición de etiqueta de pila del archivo de definición de etiquetas de pila, haga lo siguiente:
En el menú, elija Seguimiento y, a continuación, seleccione Propiedades de seguimiento. Se abre la pestaña Propiedades de seguimiento .
En el área Definición de etiquetas de pila, seleccione las definiciones de etiquetas de pila que desea quitar y haga clic en Quitar.
Advertencia Asegúrese de quitar las definiciones de etiqueta de pila seleccionadas, ya que no tendrá la opción de cancelar una vez que haga clic en Quitar.
Recarga del archivo de definición de etiquetas de pila
Para volver a cargar una definición de etiqueta de pila en el archivo de definición de etiquetas de pila, haga lo siguiente:
En el menú, elija Seguimiento y, a continuación, seleccione Propiedades de seguimiento. Se abre la pestaña Propiedades de seguimiento .
En el área Definición de etiquetas de pila, haga clic en Volver a cargar. Puede cargar varias etiquetas de pila presionando y manteniendo presionada la tecla Mayús y haciendo clic con el botón izquierdo en cada definición de etiquetas de pila.
Solución de problemas del archivo de etiquetas de pila
Para investigar problemas en el archivo de etiquetas de pila en WPA, haga lo siguiente:
En el menú, haga clic en Ventana y, a continuación, seleccione Consola de diagnóstico. La pantalla WPA se divide en dos: con el Probador de gráficos y el Análisis en la mitad superior de la pantalla y la Consola de diagnóstico en la mitad inferior de la pantalla.
Propina También puede acceder a la Consola de diagnóstico en la esquina inferior izquierda de WPA haciendo clic en Consola de diagnóstico. Una vez abierto, también puede arrastrarlo hacia fuera a una ventana independiente o acoplarlo en la parte superior o lateral.
La consola de diagnóstico muestra información sobre las excepciones que se producen durante el flujo de trabajo de análisis. Puede diagnosticar problemas de descodificación de símbolos desde esta consola.