Maybaygiare.org

Blog Network

inspeccionar a actividade do CPU com o compilador do CPU

optimizar a utilização do CPU do seu aplicativo tem muitas vantagens, tais como proporcionar uma experiência de utilizador mais rápida e mais suave e preservar a vida útil da bateria do dispositivo.

pode usar o perfil do CPU para inspeccionar a utilização do CPU e a actividadede thread do seu aplicativo em tempo real enquanto interage com o seu aplicativo, ou pode inspeccionar os detalhes nos vestígios de métodos gravados, traços de funções e vestígios de Sistema.

os tipos específicos de informação que o compilador de perfis do CPU regista e mostra são determinados pela configuração de gravação que escolher:

  • System Trace: captura detalhes de grão fino que lhe permitem inspeccionar a forma como o seu aplicativo interage com os recursos do sistema.
  • método e traços de funções: para cada tópico no processo da sua aplicação, poderá descobrir quais os métodos (Java) ou funções (C/C++) que são executados ao longo de um período de tempo e os recursos da CPU que cada método ou função consome durante a sua execução. Você também pode usar traços de método e função para identificar chamadas e chamadas. Um chamador é um método ou função que invoca outra função methodor, e um callee é um que é invocado por outro método ou função. Você pode usar esta informação para determinar quais métodos ou funcionalidades são responsáveis por invocar tarefas pesadas de recursos em particular com demasiada frequência e otimizar o código do seu aplicativo para evitar trabalho desnecessário.ao registar vestígios do método, pode escolher amostras ou instrumentos de gravação. Ao gravar traços de função, você só pode usar gravação amostrada.

para detalhes de usar e escolher cada uma dessas opções de trace, seeChoose uma configuração de gravação.

CPU Profiler visão geral

Para abrir a CPU Profiler, siga estes passos:

  1. Seleccione Ver > Ferramenta Windows > Profiler ou clique em Perfil na barra de ferramentas.

    Se for solicitado pela janela de Selecção do Destino de implantação, escolha o towhich do dispositivo para instalar a sua aplicação para análise de perfis. Se você conectou um dispositivo sobre o USBbut não vê-lo listado, certifique-se de que você temenabled depuração USB.

  2. Carregue em qualquer ponto da linha do tempo do CPU para abrir o perfil do CPU.

Quando você abre o perfil do CPU, ele imediatamente começa a mostrar a CPUusage e a actividade do tópico da sua aplicação. Você deve ver algo semelhante à figura 1.

Figura 1. Linhas de tempo no perfil do CPU.

tal como indicado na Figura 1, a janela por omissão para o perfil do CPU inclui os seguintes cronogramas:

  1. linha temporal do evento: Mostra as atividades em seu aplicativo enquanto eles transitam por diferentes estados em seu ciclo de vida, e indica as interações do usuário com o dispositivo, incluindo eventos de rotação de tela. Para informações sobre como ativar a linha do tempo do evento em dispositivos que rodam Android 7.1 (nível 25 da API) e inferior, veja activar o perfil avançado.
  2. linha do tempo do CPU: mostra a utilização em tempo real do seu aplicativo-como uma percentagem do tempo total Disponível do CPU—e o número total de tópicos que o seu aplicativo está usando. A linha do tempo também mostra o uso de CPU de outros processos (como processos de sistema ou outros aplicativos), para que você possa compará-lo com o uso do seu aplicativo. Você pode inspecionar dados históricos de Utilização do CPU movendo o mouse ao longo do eixo horizontal da linha do tempo.
  3. linha temporal da actividade do tópico: lista cada tópico que pertence ao processo do seu aplicativo e indica a sua actividade ao longo de uma linha temporal usando as cores listadas abaixo. Depois de gravar um traço, você pode selecionar um tópico a partir desta linha temporal para inspecionar seus dados na área de rastreamento.
    • verde: o tópico está ativo ou pronto para usar a CPU. Ou seja, está a correr ou a funcionar.
    • Yellow: o tópico está activo, mas está à espera de uma operação de E/S, como o disco ou a rede I/O, antes de poder completar o seu trabalho.
    • Gray: o fio está dormindo e não está consumindo nenhum tempo de CPU. Isso às vezes ocorre quando o thread requer acesso a um recurso que ainda não está disponível. Ou o thread entra em sono voluntário, ou o kernel coloca o thread para dormir até que o recurso necessário fique disponível.

    A CPU Profiler também relata o uso de CPU de threads que o Android Studio e a plataforma Android adicionar ao seu processo de aplicativo—tal como o JDWPProfile SaverStudio:VMStatsStudio:Perfa e Studio:Heartbeat (embora, o exato nomes apresentados no thread de atividade do cronograma pode variar). Android Studio relata estes dados para que você possa identificar quando a atividade de thread e o uso de CPU são realmente causados pelo código do seu aplicativo.

registar vestígios

para iniciar a gravação de um traço, escolher uma configuração de gravação a partir de qualquer dos menus abaixo ou acima do perfil do CPU e carregar em Gravar.

Figura 2. O analisador de CPU exibe o estado, a duração e o tipo de gravação que está sendo feita.

interage com a sua aplicação, e depois carregue em Parar quando terminar. O profilador exibe automaticamente a sua informação de rastreio no painel de rastreio, asshown na Figura 3:

Figura 3. O Profiler da CPU depois de gravar o rasto de amethod.

  1. intervalo seleccionado: determina a porção do tempo registado para inspeccionar na área de trace. Quando você grava pela primeira vez um traço, o perfil do CPU seleciona automaticamente todo o comprimento de sua gravação na linha do tempo do CPU. Para inspecionar os dados de traço para apenas uma parte do intervalo de tempo gravado, arraste as bordas da região realçada.
  2. Interaction section: Displays user interaction and app lifecycle events along a timeline. secção de tópicos: mostra a actividade do Estado do tópico (como correr, dormir, etc.).) e Chart de chamada (ou trace event chart em System Trace) para cada thread ao longo de uma linha de tempo.
    • Use os atalhos do rato e do teclado para navegar na linha do tempo.
    • faça duplo-click no nome do tópico ou carregue em Enter enquanto um tópico está seleccionado para expandir ou fechar um tópico.
    • seleccione um tópico para ver informação adicional na área de análise. Mantenha carregado O Shift ou Ctrl (comando no Mac) para seleccionar vários tópicos.
    • selecione uma chamada de método (ou evento de rastreamento no rastreamento do sistema) para ver informações adicionais na área de análise.
  3. Análise pane: Mostra os dados de trace para o intervalo de tempo e a chamada de thread ou método que seleccionou. Nesta área, poderá seleccionar como ver cada traço de pilha (usando as páginas de análise) e como medir o tempo de execução (usando o menu referência de hora).
  4. páginas de análise: escolha como mostrar os detalhes dos vestígios. Para mais detalhes sobre cada opção, Consulte inspecionar traces. menu de referência do tempo
  5. : seleccione uma das seguintes opções para determinar a forma como a informação de cronometragem para cada chamada é medida (apenas suportada nos métodos Java de exemplo/traço):
    • tempo de relógio de parede: A informação de tempo representa o tempo decorrido.
    • tempo do tópico: a informação de tempo representa o tempo decorrido, menos qualquer parte desse tempo em que o tópico não consome recursos de CPU. Para qualquer chamada dada, seu tempo de fio é sempre menor ou igual ao seu tempo de relógio de parede. Usar o tempo do thread dá-lhe uma melhor compreensão de quanto do uso real do CPU de um thread é consumido por um determinado método ou função. Filtro
  6. Filtro: Filtros rastream os dados por função, método, classe ou nome do pacote. Por exemplo, se você quiser identificar rapidamente os dados de rastreamento relacionados a uma chamada específica, digite o nome no campo de pesquisa. Na página Flame chart, as pilhas de chamadas que incluem uma chamada, pacote ou classe que corresponde à consulta de pesquisa são enfatizadas. Nas páginas de cima para baixo e de baixo para cima, essas pilhas de chamadas são priorizadas em relação a outros resultados. Poderá também activar as seguintes opções se assinalar a opção apropriada ao lado do campo de pesquisa:
    • Regex: para incluir expressões regulares na sua pesquisa, use esta opção.
    • Match case: se a sua pesquisa for sensível a maiúsculas, use esta opção.

dica: ao inspeccionar a linha temporal dos tópicos, estão disponíveis os seguintes atalhos:

  • ampliar: Carregue em W ou role a roda do rato enquanto mantém Ctrl (comando no Mac).
  • reduza: Carregue em S ou desloque a roda do rato para trás enquanto mantém Ctrl (comando no Mac).
  • Pan à esquerda: Carregue em A ou arraste o rato para a direita enquanto mantém o espaço.
  • Pan à direita:Carregue em D ou arraste o rato para a esquerda enquanto mantém o espaço.
  • expandir ou fechar um tópico: faça duplo-click no nome do tópico ou carregue em Enter enquanto um tópico estiver seleccionado.

Escolha uma gravação de configuração

Antes de começar a gravar informações de rastreamento, escolha apropriada de recordingconfiguration para as informações de perfil que você deseja capturar:

  • Exemplo de Java Métodos: Captura de seu aplicativo de pilha de chamada em intervalos freqüentes durante seu aplicativo baseado em Java execução de código. O profiler compara conjuntos de dados capturados para derivar informações de tempo e uso de recursos sobre a execução de código baseada em Java do seu aplicativo.

    uma questão inerente de rastreamento baseado em Samples é que se seu aplicativo entra em um método após uma captura da pilha de chamadas e sai do método antes da próxima captura, essa chamada de método não é registrada pelo profiler. Se você está interessado em métodos de rastreio com tais ciclos de vida curtos, você deve usar instrumented tracing.

  • Trace Java Methods: Instruments your app at runtime to record a timestamp at the beginning and end of each method call. As datas são coletadas e comparadas para gerar dados de rastreamento de métodos, incluindo informações de cronometragem e uso de CPU.

    Note que a sobrecarga associada com instrumentação de cada método impacta o desempenho do tempo de execução e pode influenciar os dados de análise; isto é ainda mais perceptível para métodos com ciclos de vida relativamente curtos. Além disso, se o seu aplicativo executa um grande número de métodos em um curto espaço de tempo, o profiler pode rapidamente exceder o seu limite de tamanho de arquivo e pode não ser capaz de gravar quaisquer dados adicionais de rastreamento.

  • amostrar funções C / C++: captura vestígios dos tópicos nativos da sua aplicação. Para usar esta configuração, você deve implantar o seu aplicativo para um dispositivo que executa Android 8.0 (nível API 26) ou superior.

    internamente, esta configuração usa simpleperf para rastrear o código nativo do seu aplicativo. Se quiser especificar opções adicionais para simpleperf, tais como a amostragem de CPUs de dispositivos específicos ou a especificação de durações de amostragem com alta precisão, pode utilizar simpleperf a partir da linha de comandos.

  • rastreamento de Chamadas do sistema: captura detalhes de grão fino que lhe permitem inspecionar como o seu aplicativo interage com os recursos do sistema. Você pode inspecionar horários e durações exatas de seus estados de thread, visualizar onde seus pontos de estrangulamento da CPU estão em todos os núcleos, e adicionar eventos de trace personalizados para analisar. Tais informações podem ser cruciais quando você está solucionando problemas de desempenho. Para usar esta configuração, você deve implantar o seu aplicativo para um dispositivo que executa Android 7.0 (API Nível 24) ou superior.

    ao usar esta configuração de trace, você pode visualmente marcar rotinas de código importantes na linha do tempo do profiler, instrumentando o seu código. Para o instrumento de código C / C++, use a API de localização nativa fornecida por trace.h. Para instrumentar o código Java, use a classe Trace. Para mais informações, consulte o seu código de Aplicação.

    Esta configuração de traço é construída em systrace. Você pode usar o utilitário systrace linha de comandos para especificar opções para além das fornecidas no compilador CPU. Os dados adicionais do nível do sistema fornecidos por systrace podem ajudá-lo a inspecionar os processos do sistema nativo e resolver problemas de falhas largadas ou imagens atrasadas.

    em dispositivos que rodam Android 9 (Nível 28 da API) ou superior, você pode usar uma aplicação de Sistema Chamada System Tracing para registrar vestígios de sistema em um dispositivo.

crie, edite ou veja uma configuração de gravação

você cria, edita e vê as configurações de gravação na janela de configuração de Gravação do CPU, que você abre se seleccionar a opção Editar as configurações do menu de configuração de gravação no topo do perfil do CPU.

para ver a configuração de uma configuração de gravação existente, seleccione-a na área de esquerda da janela de Configurações de Gravação do CPU.

para criar uma nova configuração de gravação, faça o seguinte:

  1. Carregue em Adicionar no canto superior esquerdo da janela. Isto cria uma nova configuração com alguma configuração por omissão.
  2. indique a sua configuração.
  3. selecione uma tecnologia de rastreamento.
  4. Para configurações de gravação amostradas, especificar o intervalo de Amostragem em microsegundos (µs). Este valor representa o tempo entre cada amostra da pilha de chamadas da sua aplicação. Quanto mais curto o intervalo que você especificar, mais rápido você atinge o limite de tamanho do arquivo para os dados gravados.
  5. indique o limite de tamanho do ficheiro, em megabytes (MB), para os dados gravados escritos no dispositivo ligado. Quando parar de gravar, o AndroidStudio analisa estes dados e mostra-os na janela do perfil. Então, se você aumentar o limite e gravar uma grande quantidade de dados, Android Studio leva muito mais tempo para analisar o arquivo e pode se tornar sem resposta.

    Nota: Se você usar um dispositivo conectado rodando Android 8.0 (nível API 26)ou superior, não há limite no tamanho do arquivo dos dados de rastreamento, e este valor é ignorado. No entanto, você ainda precisa ter cuidado sobre a quantidade de datathe device coleta após cada gravação-Android Studio pode ter dificuldade em COMPARAR grandes arquivos de rastreamento. Por exemplo, se você estiver gravando um sampled trace com um curto intervalo de amostragem ou um traço instrumentado, enquanto seus appcalls muitos métodos em um curto período de tempo, você vai gerar grandes arquivos de rastreamento rapidamente.

  6. para aceitar as alterações e continuar a fazer alterações a outras configurações, carregue em Aplicar. Para aceitar todas as alterações aplicadas e fechar a janela, clickOK.

registar a actividade da CPU com a API de depuração

pode usar o API para dar à sua aplicação a possibilidade de iniciar e parar o registo da actividade da CPU no perfil da CPU.

o perfil do CPU começa a gravar quando o seu aplicativo chamastartMethodTracing(String tracePath),e o perfil do CPU pára de gravar quando o seu aplicativo chamastopMethodTracing(). Enquanto grava a actividade do CPU que é despoletada usando esta API, a API do perfil do CPU showsDebug como a configuração activa de gravação do CPU.

para controlar o registo da actividade da CPU com o API, implemente o seu aplicativo incorporado para um dispositivo rodando Android 8.0 (nível API 26) ou superior.

Importante: Debug API destina-se a ser usedseparately a partir de outros meios para iniciar e parar a gravação de CPUactivity, tais como os botões na CPU Profiler interface gráfica do usuário e da configuração da gravação de configuração de sistema automático de gravação de appstartup.

Devido ao limite de tamanho do buffer de 8 MB, o startMethodTracing(String tracePath) método Debug API é projetada para intervalos curtos ou cenários que arehard para iniciar/parar a gravação manualmente. Por períodos mais longos de gravação, usa o profiler UI em Android Studio.

Para mais informações, verifique os registros de rastreamento por instrumentação do seu aplicativo.

registar a actividade da CPU durante o arranque da aplicação

para começar a gravar automaticamente a actividade da CPU durante o arranque da aplicação, faça o seguinte:

  1. seleccione Executar > Editar Configurações.
  2. na página de análise, assinale a opção ao lado para iniciar a gravação de um método no arranque.
  3. seleccione uma configuração de gravação de CPU no menu.clique em Aplicar.
  4. implemente o seu aplicativo para um dispositivo em execução Android 8.0 (nível 26 da API) ou superior, seleccionando executar > perfil.

exportar vestígios

Depois de gravar a actividade da CPU com o perfil da CPU, pode exportar os dados asa.trace ficheiro para partilhar com outros ou inspeccionar mais tarde.

para exportar um ficheiro de traço a partir da linha temporal do CPU, faça o seguinte:

  1. na linha do tempo do CPU, carregue com o botão direito no traceamento do método gravado ou no sistema que deseja exportar.
  2. seleccione Exportar o traço do menu.
  3. navegue para onde deseja gravar o ficheiro, indique o nome do ficheiro e o clickOK.

para exportar um ficheiro de traço da área de sessões, faça o seguinte:

  1. na área de sessões, carregue com o botão direito no traço gravado que deseja exportar.carregue no botão de pesquisa do método de exportação ou no botão de pesquisa do sistema de exportação à direita do item de sessão.
  2. navegue para onde deseja gravar o ficheiro, indique o nome do ficheiro e o clickOK.

Importar vestígios

Você pode importar .trace arquivos criados com oDebug API ou CPU Profiler.

importar o seu ficheiro de pesquisa, carregando no botão Iniciar uma nova sessão de análise na área de sessões do perfil e seleccionando então a opção Carregar a partir do ficheiro.

pode inspeccionar um traço importado no perfil do CPU, tal como acontece com os traços capturados directamente no perfil do CPU, com as seguintes excepções:

  • A actividade da CPU não é representada ao longo da linha temporal da CPU (excepto no traço do sistema).
  • A linha do tempo na secção de tópicos não mostra estados de threads, tais como o desenrolar, a espera ou o sono (excepto no traço do sistema).

inspeccionar vestígios

a área de pesquisa no perfil da CPU fornece várias formas de ver a informação a partir de vestígios registados.

para traços de método e traços de função, pode ver a chamada directamente na linha temporal dos tópicos e no gráfico de chama, de cima para baixo, e seguir as páginas de análise. Para traços de sistema, você pode ver os Eventos de traço diretamente na linha do tempo de Threads, e o gráfico de flame, de cima para baixo, e de baixo para cima a partir do Analisispano.

os atalhos do rato e do teclado estão disponíveis para a navegação easiernacional de gráficos de chamadas ou eventos de rastreio.

inspecionar vestígios usando o gráfico de chamadas

o gráfico de chamadas fornece uma representação gráfica de um traço ou função do método, onde o período e o tempo de uma chamada é representado no eixo do horizontal, e suas callees são mostrados ao longo do eixo vertical. As chamadas de APIs tosystem são mostradas em Laranja, as chamadas para os próprios métodos do seu app são mostradas em verde, e as chamadas para APIs de terceiros (incluindo APIs de linguagem Java) são mostradas em azul. A figura 4 mostra um gráfico de chamadas de exemplo e ilustra o conceito de tempo próprio, tempo infantil e tempo total para um determinado método ou função. Pode aprender mais sobre estes conceitos na secção sobre como analisar os vestígios utilizando o topo para baixo e o fundo para cima.

Figura 4. Um gráfico de chamadas de exemplo que ilustratesself, filhos e tempo total para o método D.

Tip: Para saltar o código fonte de um método ou função, clique com o botão direito e selecione Saltar para o código fonte. Isto funciona a partir de qualquer uma das páginas de análise.

inspeccionar os vestígios usando a página Flame Chart

a página Flame Chart fornece uma lista de chamadas invertida que aggregatesidentica pilhas de chamadas. Ou seja, métodos ou funções idênticos que compartilham a mesma sequência de chamadores são coletados e representados como uma barra mais longa no gráfico em chamas (ao invés de exibi-los como várias barras mais curtas, como mostrado no gráfico de acall). Isto torna mais fácil ver quais os métodos ou funções que consomem mais tempo. No entanto, isso também significa que o eixo horizontal não representa atimeline; em vez disso, indica a quantidade relativa de tempo que cada método ou função leva para executar.

para ajudar a ilustrar este conceito, considere o gráfico de chamadas na Figura 5. Notethat method D makes multiple calls to B (B1, B2, andB3), and some of those calls to B make a call to C (C1 andC3).

Figura 5. Um gráfico de chamadas com várias chamadas de métodos que compartilham uma sequência comum de chamadas.

porque B1, B2 e B3 compartilham a mesma seqüência de chamadores (A → D → B) eles são agregados, como mostrado na Figura 6. Similarmente, C1 E C3 são agregados porque eles compartilham a mesma consequência de chamadores (A → D → B → C); note que C2 não está incluído porque tem uma sequência diferente de chamadores (A → D → C).

Figura 6. Agregando métodos idênticos que compartilham a mesma pilha de chamadas.

As chamadas agregadas são usadas para criar o gráfico de chama, como mostrado na Figura 7.Note que, para qualquer chamada dada em um gráfico de chama, os chamados que consomem o tempo mais CPU aparecem primeiro.

Figura 7. Uma representação do Gráfico de chama da caixa de comando mostrada na Figura 5.

inspeccionar os vestígios utilizando

de cima para baixo e de baixo para cima a página de Cima Para Baixo mostra uma lista de chamadas nas quais a expansão de um método ou nó de função mostra as suas chamadas. A figura 8 mostra um gráfico top down para o callchart na Figura 4. Cada seta no gráfico aponta de um chamador para um callee.

Como mostrado na figura 8, expandindo o nó para o método de Cima para Baixo tabdisplays sua callees, métodos B e D. Depois, expandindo o nó para methodD expõe sua callees, métodos B e C, e assim por diante. Semelhante ao Flame charttab, a árvore de cima para baixo agrega informações de rastreamento para métodos idênticos que são a mesma pilha de chamadas. Ou seja, a página Flame chart fornece uma representação gráfica da página de cima para baixo.

O Top Down guia fornece as seguintes informações para ajudar a descrever o CPUtime gasto em cada chamada (vezes também são representados como uma percentagem do thethread tempo total durante o intervalo selecionado):

  • Auto: o tempo que o método ou chamada de função gasto para a execução de seu próprio codeand não da sua callees, como ilustrado na figura 4 para o método de D.
  • Crianças: o momento em que o método ou chamada de função gasto para a execução de itscallees e não o seu próprio código, como ilustrado na figura 4 para o método de D.
  • Total: a soma do método Self e Filhos do tempo. Isto representa o tempo total que o aplicativo gastou executando uma chamada, como ilustrado na infigure 4 para o método D.

Figura 8. Uma árvore de cima para baixo.

Figura 9. Uma árvore de baixo para cima para o método C da figura 8.

a página de baixo para cima mostra uma lista de chamadas nas quais a expansão do nó de uma função ormethod mostra os seus chamadores. Usando o traço de exemplo mostrado na figura 8, a figura 9 fornece uma árvore de baixo para cima para o Método C. Abrindo o nó para o método Cin a árvore de baixo para cima exibe cada um de seus chamadores únicos, métodos B E D. Notethat, embora B chama c duas vezes, B aparece apenas uma vez ao expandir o nó formethod C na árvore de baixo para cima. Depois disso, expandindo o nó para B displaysits Chamer, os métodos A E D.

a página de baixo para cima é útil para métodos de ordenação ou funções por aqueles que consomem o tempo de CPU mais (ou menos). Você pode inspecionar cada nó para determinar quais chamadores passam o maior tempo de CPU invocando esses métodos ou funções.Em comparação com a árvore de cima para baixo, informação de tempo para cada método ou função na árvore de abottom para cima é em referência ao método no topo de cada árvore (nó de cima).O tempo de CPU também é representado como uma porcentagem do tempo total do thread durante essa gravação. A tabela seguinte ajuda a explicar como interpretar informações de timing para o nó superior e seus chamadores (sub-nós).

Self Crianças Total
Método ou função na parte superior da parte inferior da árvore (nó superior) Representa o tempo total que o método ou função gasto para a execução de seu próprio código e não a de seus callees. Em comparação com a árvore de cima para baixo, esta informação de tempo representa uma soma de todas as chamadas para este método ou função durante a duração da gravação. representa o tempo total que o método ou função gastou a executar as suas chamadas e não o seu próprio código. Em comparação com a árvore de cima para baixo, esta informação de tempo representa a soma de todas as chamadas para este método ou callees da função ao longo da duração da gravação. a soma do tempo próprio e do tempo das crianças.
Callers (sub-Nós) representa o tempo de si próprio total do callee quando é chamado pelo chamador. Usando a árvore de baixo para cima na Figura 9 como um exemplo, o tempo próprio para o método B seria igual à soma dos tempos próprios para cada execução do método C quando chamado por B. representa o tempo total de filhos do callee quando invocado pelo chamador. Usando a árvore de baixo para cima na Figura 9 como um exemplo, o tempo das crianças para o método B seria igual à soma dos tempos das crianças para cada execução do método C quando chamado por B. a soma do tempo próprio e do tempo das crianças.

Nota: Para uma determinada gravação, Android Studio pára de coletar novos dados quando o profiler atinge o limite de tamanho de arquivo (no entanto, isso não pára a gravação). Isto normalmente acontece muito mais rapidamente quando se executam traços de estrutura porque este tipo de traçado recolhe mais dados em um tempo curto, em comparação com um traço amostrado. Se você prolongar o tempo de inspeção em um período do registro que ocorreu após atingir o limite, os dados de tempo no painel de rastreamento não mudam (porque não há novos dados disponíveis). Além disso, a área de rastreamento mostra NaN para informações de cronometragem quando você seleciona apenas a parte de uma gravação que não tem dados disponíveis.

inspeccionar os vestígios do sistema

ao inspeccionar um traço do sistema, pode examinar os vestígios de Eventos na linha do tempo para ver os detalhes dos acontecimentos que ocorrem em cada tópico.Passe o seu cursor sobre um evento para ver o nome do evento e o tempo gasto em cada Estado. Clique num evento para ver mais informações na área de análise.

a área dos núcleos DA CPU (como mostrado na Figura 10) mostra a actividade do tópico agendada em cada núcleo. Passe o seu cursor do rato por cima de uma actividade de thread para ver em que Nível Este núcleo está a correr nessa altura em particular.

Figura 10. A ver a actividade do CPU e a seguir os eventos para o tópico de desenho.

para mais informações sobre a informação de rastreio do sistema de inspecção, consulte a secção de problemas de desempenho da IUINVESTIGADA da systrace documentação.

Inspecionar quadro processamento de dados

Você pode inspecionar quanto tempo leva o seu app para renderizar cada quadro no mainthread e RenderThread para investigar os gargalos que causam UI jank e lowframerates.

para ver os dados de renderização de imagens, grave um traço usando a configuração que lhe permite rastrear as chamadas do sistema. Depois de gravar o registo, procure informações sobre cada quadro sob a linha temporal dos quadros na secção de visualização, como mostrado na Figura 11.

Figura 11. Cada quadro que leva mais de 16msis exibido em vermelho.

Deixe uma resposta

O seu endereço de email não será publicado.