Compartir a través de


Ejecutar herramientas de análisis desde la página Rendimiento y diagnósticos

Se aplica a Windows y a Windows Phone

Con los generadores de perfiles y las herramientas de diagnóstico de Visual Studio se puede analizar el rendimiento, el uso de memoria y el consumo de energía de las aplicaciones de la Tienda Windows y de Windows Phone. El hub Rendimiento y diagnósticos simplifica la selección y ejecución de estas herramientas, la combinación de varias herramientas en una única ejecución de diagnóstico y la administración de los informes que generan. Las herramientas se pueden ejecutar en la mayoría de los destinos de implementación. En el caso de las aplicaciones Windows Phone, usa un teléfono o un emulador. Para las aplicaciones de la Tienda Windows, usa tu PC con Visual Studio, el simulador o PC remoto. Cuando hayas recopilado los datos, el informe de diagnósticos mostrará gráficos de escala de tiempo y vistas detalladas de los datos. Los filtros y la configuración de los informes de rendimiento y diagnósticos ayudan a centrarse en las partes críticas de los datos.

Herramientas del hub Rendimiento y diagnósticos

El hub Rendimiento y diagnósticos muestra las herramientas que se pueden usar en determinados tipos de aplicaciones (XAML y C#/VB/C++ o HTML y JavaScript) y las herramientas que se pueden usar en una única ejecución de diagnósticos.

Uso de CPU (todos)

Consumo de energía (todos)

Uso de memoria (C#/VB/C++)

Uso de memoria en JavaScript

Capacidad de respuesta de IU XAML

Capacidad de respuesta de IU HTML

Control de tiempo de función de JavaScript

En este artículo

  • Tutorial rápido: Recopilar datos de diagnóstico

  • Recopilar datos de diagnóstico

    Agregar marcas de usuario para identificar ubicaciones en los datos de diagnóstico | Establecer el proyecto de inicio | Establecer el destino de análisis | Elegir las herramientas para ejecutar en la sesión de diagnóstico | Iniciar y detener la sesión de diagnóstico

  • Abrir un archivo de sesión de diagnóstico

  • Página de datos de rendimiento y diagnósticos

  • Solución de problemas

Tutorial rápido: Recopilar datos de diagnóstico

NotaNota

Es necesario tener privilegios de administrador para ejecutar las herramientas de rendimiento y diagnósticos.Puedes ejecutar Visual Studio como administrador o puedes optar por ejecutar las herramientas como administrador al iniciar la sesión de diagnóstico.

  1. Abre el proyecto en Visual Studio.

  2. Establece la ubicación de implementación.

    Se aplica solo a Windows Phone

    Las aplicaciones Windows Phone se pueden implementar en un teléfono o en uno de los emuladores de Visual Studio.

    Se aplica solo a Windows

    Las aplicaciones de la Tienda Windows se pueden implementar en tu PC con Visual Studio, en el simulador de Visual Studio o en una tableta o PC conectados a la red.

    Nota: la ejecución de una sesión de diagnóstico en una tableta o PC remotos requiere que las Herramientas remotas para Visual Studio estén instaladas y en funcionamiento en el destino remoto. Consulta Ejecutar aplicaciones de la Tienda Windows en un equipo remoto desde Visual Studio.

    En la lista de ubicaciones de depuración de la barra de herramientas del depurador, selecciona la ubicación de implementación de la aplicación. Esta es la lista para las aplicaciones del teléfono:

    Lista de destino de implementación para aplicaciones de Windows Phone

  3. Abre una sesión de rendimiento y diagnóstico. En el menú Depurar, elige Rendimiento y diagnósticos (teclas de método abreviado: Alt + F2).

  4. En el hub Rendimiento y diagnósticos, elige una o varias herramientas para ejecutar en la sesión. Solo se muestran las herramientas aplicables al tipo de proyecto y lenguaje de programación. Cuando se elige una herramienta de diagnóstico, se deshabilitan las selecciones de las herramientas que no se pueden ejecutar en la misma sesión de diagnóstico. Tus opciones podrían tener este aspecto para una aplicación JavaScript:

    Elegir una o varias herramientas de diagnóstico

  5. Para iniciar la sesión de diagnóstico, elige Iniciar.

  6. Ejecuta los escenarios para los que deseas recopilar datos.

    Mientras se ejecuta la sesión, algunas herramientas muestran gráficos de datos en tiempo real en la página Rendimiento y diagnósticos.

    Recopilar datos en la página Rendimiento y diagnósticos

  7. Para finalizar la sesión de diagnóstico, elige Detener recolección.

Recopilar datos de diagnóstico

Agregar marcas de usuario para identificar ubicaciones en los datos de diagnóstico | Establecer el proyecto de inicio | Establecer el destino de análisis | Elegir las herramientas para ejecutar en la sesión de diagnóstico | Iniciar y detener la sesión de diagnóstico

Agregar marcas de usuario para identificar ubicaciones en los datos de diagnóstico

Puedes agregar marcas de usuario a los datos de generación de perfiles para ayudar a identificar áreas en la regla de escala de tiempo.

Marcas de usuario en la escala de tiempo

La marca aparece como un triángulo naranja en la escala de tiempo en el momento de la ejecución del método. El mensaje y el tiempo se muestran como información sobre herramientas al mantener el mouse sobre la marca. Si dos o más marcas de usuario están muy próximas, se combinan dichas marcas y los datos sobre herramientas. Puedes acercar la escala de tiempo para separar las marcas.

NotaNota
  • Los informes de control de tiempo de función de JavaScript no muestran marcas de usuario.

  • Los informes no muestran las marcas de usuario cuando la herramienta Uso de CPU es la única que se utiliza en una sesión de diagnóstico.

  • Consulte el ejemplo de LoggingSession del Windows SDK para ver más ejemplos.

Agregar marcas a código de C#, Visual Basic y C++

Para agregar una marca de usuario a código de C#, Visual Basic y C++, primero cree un objeto Windows.Foundation.Diagnostics LoggingChannel. A continuación, inserte llamadas a métodos LoggingChannel.LogMessage en los puntos del código que quiera marcar. Use LoggingLevel.Information en las llamadas.

Al ejecutarse el método, se agrega una marca de usuario a los datos de generación de perfiles junto con un mensaje.

Notas

La adición de canales de registro al código plantea un par de retos:

Cada canal de registro abierto debe tener un nombre único. Si se intenta crear un nuevo canal de registro con el nombre de uno abierto, se produce una excepción.

Una manera de evitar nombres duplicados en el código es usar un método estático (compartido en VB) para devolver un LoggingChannel con un nombre con garantía de exclusividad. Aquí se ofrece un ejemplo en el que se usa un GUID para proporcionar exclusividad:

//using Windows.Foundation.Diagnostics
public static LoggingChannel GetLoggingChannel()
{
    var name = Guid.NewGuid().ToString();
    return new LoggingChannel(name);
}
'Imports Windows.Foundation.Diagnostics
Public Shared Function GetLoggingChannel() As LoggingChannel
    Dim Name = Guid.NewGuid().ToString()
    GetLoggingChannel = New LoggingChannel(Name)
End Function
//using namespace Windows::Foundation::Diagnostics;
static LoggingChannel^ MainPage::GetLoggingChannel()
{
    auto name = (ref new Guid())->ToString();
    auto channel = ref new LoggingChannel(name);
    return channel;
}

C# y VB: hay que desechar los objetos LoggingChannel

Dado que los objetos LoggingChannel usan recursos del sistema, las proyecciones de C# y VB de LoggingChannel derivan de la interfaz System.IDisposable para permitir liberar los recursos antes de que el objeto sea destruido por el recolector de elementos no utilizados de CLR. En el código C++, el objeto LoggingChannel se destruye y los recursos se liberan en cuanto el objeto queda fuera del ámbito. Aquí se ofrecen ejemplos de patrones que se pueden usar para agregar marcas de usuario a un archivo de sesión de diagnóstico:

void MyScenario()
{
    var logLevel = LoggingLevel.Information;
    using(var channel = Utils.GetLoggingChannel())
    {
        channel.LogMessage("MyScenario Start", logLevel);
        // scenario code
        channel.LogMessage("MyScenario End", logLevel);
    }
}
Sub MyScenario()
    Dim logLevel = LoggingLevel.Information
    Using channel As LoggingChannel = Utils.GetLoggingChannel()
        channel.LogMessage("MyScenario Start", logLevel)
        'scenario code
        channel.LogMessage("MyScenario End", logLevel)
    End Using
End Sub
// m_channel resources are released when containing 
// object goes out of scope
LoggingChannel^ m_channel = MainPage::GetLoggingChannel();
LoggingLevel m_logLevel = LoggingLevel::Information;

void MyScenario()
{
    m_channel->LogMessage(L"MyScenario Start", m_logLevel);
    //scenario code
    m_channel->LogMessage(L"MyScenario Start", m_logLevel);
}

Agregar marcas a código de JavaScript

Para agregar marcas de usuario, agrega el código siguiente en los puntos del código que desees marcar:

if (performance && performance.mark) {
    performance.mark(markDescription);
}

markDescription es una cadena que contiene el mensaje que se va a mostrar en la información sobre herramientas de la marca de usuario.

Establecer el proyecto de inicio

Si la solución contiene varios proyectos de aplicación, asegúrate de que el que deseas analizar se establece como el proyecto de inicio. En el Explorador de soluciones, selecciona el proyecto y elige Establecer como proyecto de inicio en el menú contextual.

Establecer como proyecto de inicio

Establecer la ubicación de implementación

Puedes ejecutar sesiones de diagnóstico para aplicaciones de teléfono en un Windows Phone conectado directamente al equipo con Visual Studio o en un emulador de teléfono de Visual Studio. Puedes ejecutar aplicaciones de la Tienda Windows en tu PC con Visual Studio, en el simulador de dispositivos de Visual Studio o en un dispositivo remoto que esté conectado a Visual Studio en red o conectado directamente al equipo con Visual Studio mediante un cable Ethernet a USB. Puedes establecer el destino de implementación en la página Depurar de las propiedades del proyecto o puedes elegir el destino en la lista de ubicaciones de depuración de la barra de herramientas de Visual Studio. Esta es la lista de implementación para aplicaciones de la Tienda Windows:

Lista de destino de implementación para aplicaciones de la Tienda Windows

La opción que elijas en la barra de herramientas de ubicación de depuración se guarda en las propiedades del proyecto.

Se aplica solo a Windows

  • La ejecución de una sesión de diagnóstico en un dispositivo de la Tienda Windows remoto requiere que las Herramientas remotas para Visual Studio estén instaladas y en funcionamiento en el destino remoto. Consulta Ejecutar aplicaciones de la Tienda Windows en un equipo remoto desde Visual Studio.

  • Si no has especificado ningún dispositivo remoto al elegir el equipo remoto en la lista de ubicaciones de depuración, especifica el dispositivo en el cuadro de diálogo Conexiones remotas que aparecerá.

    Cuadro de diálogo Conexiones remotas

  • Después de especificar el destino del dispositivo remoto, usa la página Depurar de las propiedades del proyecto para cambiar a un nuevo dispositivo.

  • Si usa un cable USB a Ethernet para conectar un dispositivo remoto al equipo con Visual Studio, especifique la dirección IP del dispositivo remoto en el cuadro de diálogo Conexiones remotas.

Establecer el destino de análisis

Además de iniciar la aplicación desde el proyecto de Visual Studio, también puedes ejecutar sesiones de diagnóstico en destinos alternativos. Por ejemplo, puede que desees diagnosticar problemas de rendimiento en una versión de tu aplicación que se instaló desde la Tienda de aplicaciones Windows.

Elegir destino de análisis de herramientas de diagnóstico

Se aplica solo a Windows

Puedes iniciar aplicaciones de la Tienda Windows ya instaladas en un dispositivo o puedes adjuntar las herramientas de diagnóstico a una aplicación de la Tienda Windows que ya se esté ejecutando. Al elegir Aplicación en ejecución o Aplicación instalada, seleccionas la aplicación en una lista que muestra las aplicaciones en el destino de implementación especificado.

Elegir una aplicación instalada o en ejecución para el diagnóstico

Se aplica solo a Windows Phone

Cuando eliges Internet Explorer, especificas la dirección URL y puedes cambiar el destino de implementación del teléfono.

Especificar la dirección URL que se mostrará en Internet Explorer

Elegir las herramientas para ejecutar en la sesión de diagnóstico

En el hub Rendimiento y diagnósticos, elige una o varias herramientas para ejecutar en la sesión de diagnóstico. Solo se muestran las herramientas aplicables al tipo de proyecto y programación. Cuando se elige una herramienta de diagnóstico, se deshabilitan las selecciones de las herramientas que no se pueden ejecutar en la misma sesión de diagnóstico. Tus opciones podrían tener este aspecto para una aplicación JavaScript:

Iniciar y detener la sesión de diagnóstico

Para iniciar la sesión de diagnóstico, elige Iniciar.

Para finalizar la sesión de diagnóstico y comenzar el análisis de los datos, elige Detener recolección en la parte inferior de la página.

Abrir un archivo de sesión de diagnóstico

Cuando finaliza la recopilación de datos de una sesión de diagnóstico, los datos se analizan de inmediato y, después, se muestran en el informe de rendimiento y diagnósticos.

También se pueden abrir los archivos de sesión .diagnosis guardados en la lista de archivos abiertos recientemente en el hub Rendimiento y diagnósticos.

Abrir un archivo de sesión de diagnóstico guardado

Elige el botón Mostrar u Ocultar en la parte superior del hub Rendimiento y diagnósticos para expandir o contraer la lista de archivos utilizados recientemente.

Informe de rendimiento y diagnósticos

Página de datos Rendimiento y diagnósticos

Paso 1

La escala de tiempo muestra la longitud de la sesión de generación de perfiles, los eventos de activación del ciclo de vida de la aplicación y las marcas de usuario.

Paso 2

Puedes restringir el informe a una parte de la escala de tiempo arrastrando las barras azules para seleccionar una región de esta.

Paso 3

Una herramienta muestra uno o varios gráficos maestros. Si la sesión de diagnóstico se crea con varias herramientas, se muestran todos los gráficos maestros.

Paso 4

Puedes contraer y expandir los gráficos individuales.

Paso 5

Cuando los datos incluyen información de varias herramientas, los detalles de las mismas se recopilan bajo pestañas.

Paso 6

Una herramienta puede tener una o varias vistas detalladas. La vista se filtra por la región seleccionada de la escala de tiempo.

Solución de problemas

Eventos de diagnóstico perdidos.Es posible que falte parte de la información en el informe o que no sea precisa

El recopilador de datos en herramientas de rendimiento y diagnóstico puede consumir una cantidad de memoria y CPU considerable. Cuando el recopilador de datos no puede registrar todos los eventos de diagnóstico, muestra el mensaje en una barra de información en la parte superior de la página Rendimiento y diagnósticos. Es posible que falte parte de los datos en el informe o que no sean precisos

Para solucionar este problema, pruebe a seguir estos pasos para liberar recursos en el equipo y vuelva a ejecutar la sesión de diagnóstico:

  1. Cierre las demás aplicaciones que no formen parte de la sesión de diagnóstico.

  2. Simplifique el escenario para recopilar menos datos.

  3. Use menos herramientas de diagnóstico en una sola sesión.

Vea también

Otros recursos

Rendimiento (aplicaciones de la Tienda Windows)

Ejemplo de LoggingSession del Windows SDK