InglêsFrancêsEspanhol

favicon do OnWorks

perf-script-perl - On-line na nuvem

Execute perf-script-perl no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando perf-script-perl que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas múltiplas estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online de Windows ou emulador online de MAC OS.

PROGRAMA:

NOME


perf-script-perl - Processa dados de rastreamento com um script Perl

SINOPSE


perf escrita [-s [Perl]:script[.pl] ]

DESCRIÇÃO


Esta opção de script perf é usada para processar dados de script perf usando o Perl integrado do perf
intérprete. Ele lê e processa o arquivo de entrada e exibe os resultados do rastreamento
análise implementada no script Perl fornecido, se houver.

STARTER CRITÉRIOS


Você pode evitar a leitura do restante deste documento executando perf escrita -g perl no mesmo
diretório como um arquivo de rastreio perf.data existente. Isso irá gerar um script inicial
contendo um manipulador para cada um dos tipos de eventos no arquivo de rastreamento; ele simplesmente imprime todos
campo disponível para cada evento no arquivo de rastreamento.

Você também pode olhar para os scripts existentes em ~/libexec/perf-core/scripts/perl para típico
exemplos mostrando como fazer coisas básicas, como agregar dados de eventos, imprimir resultados, etc.
Além disso, o script check-perf-script.pl, embora não seja interessante por seus resultados, tenta
exercitar todos os principais recursos de script.

EVENTO MANIPULADORES


Quando o script de desempenho é invocado usando um script de rastreamento, um script definido pelo usuário treinador função is
chamado para cada evento no rastreamento. Se não houver função de tratamento definida para um determinado
tipo de evento, o evento é ignorado (ou passado para um trace_handled função, veja abaixo) e
o próximo evento é processado.

A maioria dos valores de campo do evento são passados ​​como argumentos para a função do manipulador; alguns
os menos comuns não são - eles estão disponíveis como chamadas de volta para o executável perf
(ver abaixo).

Como exemplo, o seguinte comando perf record pode ser usado para registrar todos os sched_wakeup
eventos no sistema:

# perf record -a -e sched: sched_wakeup

Os rastreamentos destinados a serem processados ​​usando um script devem ser registrados com a opção acima: -a
para habilitar a coleta de todo o sistema.

O arquivo de formato para o evento sched_wakep define os seguintes campos (consulte
/ sys / kernel / debug / tracing / events / sched / sched_wakeup / format):

.ft C
formato:
campo: common_type curto sem sinal;
campo: unsigned char common_flags;
campo: unsigned char common_preempt_count;
campo: int common_pid;

campo: char comm [TASK_COMM_LEN];
campo: pid_t pid;
campo: int prio;
campo: sucesso interno;
campo: int target_cpu;
.ft

A função de manipulador para este evento seria definida como:

.ft C
sub agendado::sched_wakeup
{
meu ($event_name, $context, $common_cpu, $common_secs,
$common_nsecs, $common_pid, $common_comm,
$comm, $pid, $prio, $sucesso, $target_cpu) = @_;
}
.ft

A função manipuladora assume o formato subsistema::nome_do_evento.

Os argumentos $common_* na lista de argumentos do manipulador são o conjunto de argumentos passados ​​para
todos os manipuladores de eventos; alguns dos campos correspondem aos campos common_ * no formato
arquivo, mas alguns são sintetizados, e alguns dos campos common_ * não são comuns o suficiente para
podem ser passados ​​para todos os eventos como argumentos, mas estão disponíveis como funções de biblioteca.

Aqui está uma breve descrição de cada um dos argumentos invariantes do evento:

$event_name o nome do evento como texto
$context um 'cookie' opaco usado em chamadas de volta ao desempenho
$common_cpu a CPU em que o evento ocorreu
$common_secs a parte de segundos do carimbo de data/hora do evento
$common_nsecs a parte nsecs do carimbo de data/hora do evento
$common_pid o pid da tarefa atual
$common_comm o nome do processo atual

Todos os campos restantes no arquivo de formato do evento têm contrapartes como manipuladores
argumentos de função de mesmo nome, como pode ser visto no exemplo acima.

O acima fornece os fundamentos necessários para acessar diretamente todos os campos de cada evento em um
trace, que cobre 90% do que você precisa saber para escrever um script de rastreamento útil. o
as seções abaixo cobrem o resto.

SCRIPT LAYOUT


Todo script Perf script Perl deve começar configurando um caminho de pesquisa de módulo Perl e
'usando' alguns módulos de suporte (veja as descrições dos módulos abaixo):

.ft C
use lib "$ENV{'PERF_EXEC_PATH'}/scripts/perl/Perf-Trace-Util/lib";
use lib "./Perf-Trace-Util/lib";
use Perf::Trace::Core;
use Perf::Trace::Context;
use Perf::Trace::Util;
.ft

O restante do script pode conter funções de manipulador e funções de suporte em qualquer ordem.

Além das funções de manipulador de eventos discutidas acima, cada script pode implementar um conjunto
de funções opcionais:

trace_begin, se definido, é chamado antes que qualquer evento seja processado e dá aos scripts um
chance de fazer tarefas de configuração:

.ft C
subtraço_begin
{
}
.ft

trace_end, se definido, é chamado após todos os eventos terem sido processados ​​e dá aos scripts um
chance de realizar tarefas de fim de script, como resultados de exibição:

.ft C
sub-traço_end
{
}
.ft

trace_unhandled, se definido, é chamado depois de qualquer evento que não tenha um manipulador
definido explicitamente para ele. O conjunto padrão de argumentos comuns é passado para ele:

.ft C
subtraço_unhandled
{
meu ($event_name, $context, $common_cpu, $common_secs,
$common_nsecs, $common_pid, $common_comm) = @_;
}
.ft

As seções restantes fornecem descrições de cada um dos scripts de desempenho integrados disponíveis
Módulos Perl e suas funções associadas.

DISPONÍVEL MÓDULOS E FUNÇÕES


As seções a seguir descrevem as funções e variáveis ​​disponíveis através dos vários
Perf::Trace::* Módulos Perl. Para usar as funções e variáveis ​​de um determinado módulo, adicione
o correspondente usar Desempenho::Traço::XXX linha para o seu script de desempenho.

Perf::Trace::Core Módulo
Essas funções fornecem algumas funções essenciais para scripts de usuário.

A bandeira_str e símbolo_str funções fornecem strings legíveis por humanos para sinalização e símbolos
Campos. Eles correspondem às strings e valores analisados ​​a partir do impressão fmt campos do
arquivos de formato de evento:

flag_str($event_name, $field_name, $field_value) - retorna a representação de string correspondente a $field_value para o campo de flag $field_name do evento $event_name
symbol_str($event_name, $field_name, $field_value) - retorna a representação de string correspondente a $field_value para o campo simbólico $field_name do evento $event_name

Perf::Trace::Contexto Módulo
Alguns dos comum campos no arquivo de formato de evento não são tão comuns, mas precisam ser
tornado acessível para scripts de usuário, no entanto.

Perf::Trace::Context define um conjunto de funções que podem ser usadas para acessar esses dados em
contexto do evento atual. Cada uma dessas funções espera uma variável $context,
que é o mesmo que a variável $context passada para cada manipulador de eventos como o segundo
argumento.

common_pc($context) - retorna a contagem de common_preempt para o evento atual
common_flags($context) - retorna common_flags para o evento atual
common_lock_profundidade($context) - retorna common_lock_profundidade para o evento atual

Perf::Trace::Util Módulo
Várias funções de utilitário para uso com script de desempenho:

nsecs($secs, $nsecs) - retorna o total de nsecs dado o par segundos/nsecs
nsecs_secs($nsecs) - retorna uma porção inteira de segundos dados nsecs
nsecs_nsecs($nsecs) - retorna o restante de nsecs dados nsecs
nsecs_str($nsecs) - retorna uma string imprimível no formato secs.nsecs
avg($total, $n) - retorna a média dada uma soma e um número total de valores

Use perf-script-perl online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad