Executar ferramentas de análise na página Desempenho e Diagnóstico
Você pode analisar o desempenho, o uso de memória e o consumo de energia dos aplicativos da Windows Store e do Windows Phone usando os criadores de perfil e as ferramentas de diagnóstico do Visual Studio. O hub Desempenho e Diagnóstico facilita a seleção e execução dessas ferramentas, a combinação de várias ferramentas em uma única execução de diagnóstico e o gerenciamento dos relatórios que elas geram. Você pode executar as ferramentas na maioria dos destinos de implantação: Para aplicativos do Windows Phone, use um telefone ou um emulador. Para aplicativos da Windows Store, use o computador do Visual Studio, o simulador ou um computador remoto. Depois de coletar os dados, o relatório de diagnóstico exibe gráficos de linha do tempo e exibições detalhadas dos dados. Os filtros e as configurações do relatório Desempenho e Diagnóstico ajudam a focar nas partes essenciais dos dados.
Ferramentas do hub Desempenho e Diagnóstico
O hub Desempenho e Diagnóstico mostra as ferramentas que você pode usar em tipos específicos de aplicativos (XAML e C#/VB/C++ ou HTML e JavaScript) e as ferramentas que você pode usar em uma única execução de diagnóstico.
Neste artigo
Início rápido: coletar dados de diagnóstico
Coletar dados de diagnóstico
Adicionar marcas do usuário para identificar locais em seus dados de diagnóstico | Definir o projeto de inicialização | Definir o destino da análise | Escolher as ferramentas para executar na sessão de diagnóstico | Iniciar e interromper a sessão de diagnóstico
Abrir um arquivo de sessão de diagnóstico
A página de dados de Desempenho e Diagnóstico
Solução de problemas
Início rápido: coletar dados de diagnóstico
Dica
Você deve ter privilégios de administrador para executar as ferramentas de desempenho e diagnóstico.Você pode executar o Visual Studio como administrador ou pode optar por executar as ferramentas como administrador ao iniciar a sessão de diagnóstico.
Abra o projeto no Visual Studio.
Defina o local da implantação.
Os aplicativos do Windows Phone podem ser implantados em um telefone ou em um dos emuladores do Visual Studio.
Os aplicativos da Windows Store podem ser implantados no computador do Visual Studio, o simulador do Visual Studio ou um computador ou tablet conectado à rede.
Observação: a execução de uma sessão de diagnóstico em um computador remoto ou tablet exige que as Ferramentas Remotas do Visual Studio estejam instaladas e em execução no destino remoto. Consulte Executar aplicativos da Windows Store em uma máquina remota a partir do Visual Studio.
Na lista de locais de depuração da barra de ferramentas do depurador, selecione o local de implantação para seu aplicativo. Esta é a lista de aplicativos para telefones:
Abra uma sessão de Desempenho e Diagnóstico. No menu Depurar, escolha Desempenho e Diagnóstico (tecla de atalho: Alt + F2).
No hub Desempenho e Diagnóstico, escolha uma ou mais ferramentas para executar na sessão. Somente as ferramentas que são aplicáveis ao tipo de projeto e à linguagem de programação são exibidas. Quando você escolhe uma ferramenta de diagnóstico, as seleções de ferramentas que não podem ser executadas na mesma sessão de diagnóstico são desabilitadas. Veja aqui como suas escolhas podem parecer para um aplicativo JavaScript:
Para iniciar a sessão de diagnóstico, escolha Iniciar.
Execute os cenários dos quais deseja coletar dados.
Durante a execução da sessão, algumas ferramentas exibem gráficos de dados em tempo real na página Desempenho e Diagnóstico.
Para encerrar a sessão de diagnóstico, escolha Pare a coleta.
Coletar dados de diagnóstico
Adicionar marcas do usuário para identificar locais em seus dados de diagnóstico | Definir o projeto de inicialização | Definir o destino da análise | Escolher as ferramentas para executar na sessão de diagnóstico | Iniciar e interromper a sessão de diagnóstico
Adicionar marcas do usuário para identificar locais em seus dados de diagnóstico
Você também pode adicionar marcas do usuário aos seus dados de perfil para ajudar a identificar áreas na régua da linha do tempo.
A marca aparece como um triângulo laranja na linha de tempo no momento em que o método é executado. A mensagem e a hora são exibidas como uma dica de ferramenta quando você passa o cursor do mouse sobre a marca. Se duas ou mais marcas de usuário ficarem próximas, elas serão mescladas e os dados de dica de ferramenta serão combinados. Você pode aplicar zoom na linha de tempo para separar as marcas.
Dica
-
Os relatórios de Temporização de Função JavaScript não exibem marcas do usuário.
-
Os relatórios não exibem marcas do usuário quando Uso da CPU é a única ferramenta usada na sessão de diagnóstico.
-
Confira mais exemplos na LoggingSession Sample (amostra LoggingSession) do SDK do Windows.
Adicionar marcas a código C#, Visual Basic, C++
Para adicionar uma marca do usuário ao código C#, Visual Basic, C++, crie primeiro um objeto Windows.Foundation.Diagnostics LoggingChannel. Em seguida, insira chamadas para os métodos LoggingChannel.LogMessage nos pontos do código que você deseja marcar. Use LoggingLevel.Information nas chamadas.
Quando o método é executado, uma marca de usuário é adicionada aos dados de criação de perfil juntamente com uma mensagem.
Observações
Adicionar canais de registro ao seu código representa alguns desafios:
**Cada canal de registro em log aberto deve ter um nome exclusivo.**Tentar criar um novo canal de registro em log com o mesmo nome de um canal aberto gera uma exceção.
Um jeito de evitar nomes duplicados no seu código é usar um método estático (compartilhado no VB) para gerar um LoggingChannel com um nome com garantia de exclusividade. Veja um exemplo que usa um Guid para garantir a exclusividade:
//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# e VB: objetos LoggingChannel devem ser descartados
Como os objetos LoggingChannel usam recursos do sistema, as projeções em C# e VB do LoggingChannel derivam da interface do System.IDisposable, para permitir que você libere os recursos antes do objeto ser destruído pelo coletor de lixo de CLR. No código C++, o objeto LoggingChannel é destruído e os recursos são liberados assim que o objeto sai do escopo. Veja alguns exemplos de padrões que você pode usar para adicionar marcas de usuário a um arquivo de sessão 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);
}
Adicionar marcas ao código JavaScript
Para adicionar marcas do usuário, adicione o seguinte código nos pontos do código que você deseja marcar:
if (performance && performance.mark) {
performance.mark(markDescription);
}
markDescription é uma cadeia de caracteres que contém a mensagem a ser exibida na dica de ferramenta da marca do usuário.
Definir o projeto de inicialização
Se sua solução contiver vários projetos de aplicativos, certifique-se de que aquele que você deseja analisar seja definido como o projeto de inicialização. No Gerenciador de Soluções, selecione o projeto e escolha Definir como Projeto de Inicialização no menu de contexto.
Definir o local da implantação
Você pode executar sessões de diagnóstico para aplicativos de telefone em um Windows Phone que esteja conectado diretamente ao computador do Visual Studio ou em um emulador de telefone do Visual Studio. Você pode executar aplicativos do Windows Store no computador do Visual Studio, no simulador do dispositivo do Visual Studio ou em um dispositivo remoto conectado ao Visual Studio via rede ou conectado diretamente ao computador do Visual Studio via cabo Ethernet para USB. Você pode definir o destino da implantação na página Depurar das propriedades do projeto, ou pode escolher o destino na lista de locais de depuração na barra de tarefas do Visual Studio. Esta é a lista de implantação para aplicativos da Windows Store:
A escolha que você faz na barra de ferramentas de locais de depuração é salva nas propriedades do projeto:
|
Definir o destino da análise
Além de iniciar o aplicativo a partir do projeto do Visual Studio, você também pode executar sessões de diagnóstico em destinos alternativos. Por exemplo, você pode diagnosticar problemas de desempenho em uma versão de seu aplicativo que foi instalado por meio da Windows Store.
Você pode iniciar aplicativos da Windows Store que já estão instalados em um dispositivo ou pode anexar as ferramentas de diagnóstico a um aplicativo da Windows Store que já esteja em execução. Ao escolher Aplicativo em Execução ou Aplicativo Instalado, você seleciona o aplicativo em uma lista que descobre os aplicativos no destino de implantação especificado. |
|
Ao escolher Internet Explorer, você especifica a URL e pode alterar o destino da implantação do telefone. |
Escolher as ferramentas para executar na sessão de diagnóstico
No hub Desempenho e Diagnóstico, escolha uma ou mais ferramentas para executar na sessão de diagnóstico. Somente as ferramentas que são aplicáveis ao tipo de projeto e à programação são exibidas. Quando você escolhe uma ferramenta de diagnóstico, as seleções de ferramentas que não podem ser executadas na mesma sessão de diagnóstico são desabilitadas. Veja aqui como suas escolhas podem parecer para um aplicativo JavaScript:
Iniciar e interromper a sessão de diagnóstico
Para iniciar a sessão de diagnóstico, escolha Iniciar.
Para encerrar a sessão de diagnóstico e iniciar a análise dos dados, escolha Pare a coleta na parte inferior da página.
Abrir um arquivo de sessão de diagnóstico
Quando você para de coletar dados em uma sessão de diagnóstico, os dados são analisados imediatamente e depois são exibidos no relatório Desempenho e Diagnóstico.
Você também pode abrir arquivos de sessão de diagnóstico salvos a partir da lista de abertos recentemente no hub Desempenho e Diagnóstico.
Escolha o botão mostrar ou ocultar na parte superior do hub Desempenho e Diagnóstico para expandir ou recolher a lista de arquivos usados recentemente.
O relatório Desempenho e Diagnóstico
A linha de tempo mostra a duração da sessão de criação de perfil, os eventos de ativação de ciclo de vida do aplicativo e as marcas de usuário. |
|
Você pode restringir o relatório a uma parte da linha do tempo arrastando as barras azuis para selecionar uma região da linha do tempo. |
|
Uma ferramenta exibe um ou mais gráficos mestres. Se sua sessão de diagnóstico for criada com várias ferramentas, todos os gráficos mestres serão exibidos. |
|
Você pode recolher e expandir os gráficos individuais. |
|
Quando seus dados incluem informações de várias ferramentas, os detalhes da ferramenta são coletados sob as guias. |
|
Uma ferramenta poder ter uma ou mais exibições de detalhes. A exibição é filtrada pela região selecionada da linha do tempo. |
Solução de problemas
Eventos de diagnóstico ignorados.Algumas informações podem estar incorretas ou faltando no relatório
O coletor de dados das ferramentas de desempenho e diagnóstico pode ter uso intenso de memória e CPU. Quando o coletor de dados não consegue registrar em log todos os eventos de diagnóstico, ele exibe a mensagem em uma barra de informações na parte superior da página de Desempenho e diagnóstico. Alguns dados podem ser inválidos ou estar faltando no relatório.
Para resolver este problema, tente essas etapas para liberar recursos no computador e, então, execute a sessão de diagnóstico novamente:
Feche os aplicativos que não fazem parte da sessão de diagnóstico.
Simplifique o cenário para coletar menos dados.
Use menos ferramentas de diagnóstico em uma única sessão.