PerfLog Output File Contents
9/8/2008
O arquivo log geralmente contém um cabeçalho com informações de sistema, um conjunto de testes a calibragem, seguidos por dados temporização de um ou mais testes, as well as CPU ou memória informações de uso. As informações de calibragem somente são geradas para fins internos e podem ser ignoradas com segurança ao escrever um analisador.
Cabeçalho
O cabeçalho tem a seguinte estrutura:
## PERF ## OSVERSION=[6.0] BUILD=[1234]
## PERF ## PLATFORM=[CEPC] CPU=[x86]
## PERF ## DEVNAME=[CEPC]
## PERF ## REGISTERED APP [myperfapp] PROCCESSID [0x03d3002e]
## PERF ## RESOLUTION [1193180] TICKS PER SECOND
A seguinte tabela mostra a descrição para cada elemento cabeçalho mostrado acima.
Elemento de cabeçalho | Descrição |
---|---|
OSVERSION |
A versão Major.Minor da sistema operacional (OS) |
BUILD |
O número de compilação da OS |
PLATFORM |
A abreviação plataforma; de exemplo, CEPC, DeviceEmulator |
CPU |
A abreviação CPU; de exemplo, x 86, ARMV41 |
DEVNAME |
Nome do dispositivo; Se não disponível, mesmo que PLATFORM |
APP REGISTERED |
Seqüência de caracteres opcional passado pelo aplicativo registrar a biblioteca de desempenho. Este valor não pode ser definido. |
PROCESSID |
O PID do aplicativo usando a biblioteca desempenho. |
Resolução |
O número de relógio marcas por segundo. Todos os Valores timer registrados por biblioteca de desempenho são representados como ticks, não segundos. |
Marcadores registrados
Quando um aplicativo precisa para inicializar um novo timer, CPU, ou monitoração de memória segmento, ele irá registrar um marcador com um ID. numérico específico A ação registro marcador é saída pela biblioteca de desempenho para o log. O marcador identificação passada pelo aplicativo, em seguida, é usada em todas as seqüências de caracteres geradas por agente de log o desempenho para associar a saída com um marcador específico. O marcador IDS pode ser reutilizado pelo aplicativo. Quando análise arquivo de log, é importante para manter controlar se um determinado valor identificação foi re-Registered, so that quaisquer dados log que segue é associado com a instância mais recente do marcador.
A seguinte tabela descreve o formato das seqüências de caracteres registro marcador no arquivo de log.
Tipo do marcador | Formato seqüência de caracteres de registro |
---|---|
Marcador timer de teste |
PERF ## ## [MARKER REGISTEREDapp_string] Como [marker_id por [APPapp_name] app_string: Um opcional, aplicativo definido seqüência de caracteres que podem ser usado para descrito a maiúsculas e minúsculas testar que está registrando o timer Exemplo: PERF ## ## REGISTERED MARKER [teste = MeuTeste] como [1] BY APP [myperfapp] |
O monitor CPU |
PERF ## ## MARKER REGISTERED [CPU: app_name] Como [marker_id By [APPapp_name] app_name: o nome do aplicativo (esse é o mesmo seqüência de caracteres como valor REGISTERED APP no cabeçalho) Exemplo: PERF ## ## MARKER REGISTERED [CPU: myperfapp] como [103] BY APP [myperfapp] |
O monitor mem |
PERF ## ## MARKER REGISTERED [mem: app_name] Como [marker_id BY APP app_name] app_name: o nome do aplicativo (esse é o mesmo seqüência de caracteres como valor REGISTERED APP no cabeçalho) Exemplo: PERF ## ## MARKER REGISTERED [mem: myperfapp] como [102] BY APP [myperfapp] |
Eventos
Após um um marcador timer testar registrando, o aplicativo pode iniciar e parar o timer associado com esse marcador. O timer pode ser iniciado e interrompido para um número arbitrário de iterações. Sempre que um timer for interrompido, a biblioteca agente de log desempenho será log a duração foi o timer ativo para desde a última ativação.
Além disso, o aplicativo pode solicitação que qualquer registrado CPU ou monitoração de memória segmentos na saída biblioteca de desempenho seu atual estatísticas para o log.
A seguinte tabela descreve o formato do log de desempenho evento seqüências de caracteres no arquivo de log.
Tipo de evento | Formato seqüência de caracteres de registro |
---|---|
Testar duração timer |
## Perf ## APPapp_name[EVT]marker_id[] DurEscalas] app_string: o nome do aplicativo (esse é o mesmo seqüência de caracteres como valor REGISTERED APP no cabeçalho) Exemplo: Dur EVT [1] ## APP Perf ## [myperfapp] [122519] |
Uso CPU |
## Perf ## APPapp_name[EVT]marker_id[] CPUo uso] app_name: o nome do aplicativo (esse é o mesmo seqüência de caracteres como valor REGISTERED APP no cabeçalho) Exemplo: PERF ## ## APP [myperfapp] EVT [103] CPU [57.843834] |
Uso mem |
## Perf ## APPapp_name[EVT]marker_id[] Memo uso] app_name: o nome do aplicativo (esse é o mesmo seqüência de caracteres como valor REGISTERED APP no cabeçalho) Exemplo: MEM [102] EVT Perf ## ## APP [myperfapp] [10059776] |