GoGPT Best VPN GoSearch

favicon do OnWorks

sprof - Online na nuvem

Execute o sprof no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando sprof que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


sprof - lê e exibe dados de perfil de objeto compartilhado

SINOPSE


sprof [opção] ... caminho do objeto compartilhado [caminho dos dados do perfil]

DESCRIÇÃO


O sprof comando exibe um resumo de criação de perfil para o objeto compartilhado (biblioteca compartilhada)
especificado como seu primeiro argumento de linha de comando. O resumo do perfil é criado usando
dados de criação de perfil gerados anteriormente no segundo argumento da linha de comando (opcional). Se
o nome do caminho de dados de criação de perfil é omitido, então sprof tentará deduzi-lo usando o
soname do objeto compartilhado, procurando um arquivo com o nome .perfil no
diretório atual.

OPÇÕES


As seguintes opções de linha de comando especificam a saída do perfil a ser produzida:

-c, --pares de chamada
Imprime uma lista de pares de caminhos de chamada para as interfaces exportadas pelo compartilhamento
objeto, junto com o número de vezes que cada caminho é usado.

-p, --perfil plano
Gere um perfil simples de todas as funções no objeto monitorado, com
contagens e carrapatos.

-q, --gráfico
Gere um gráfico de chamadas.

Se nenhuma das opções acima for especificada, o comportamento padrão é exibir uma imagem plana
perfil e um gráfico de chamadas.

As seguintes opções adicionais de linha de comando estão disponíveis:

-?, --Socorro
Exiba um resumo das opções e argumentos da linha de comando e saia.

--uso
Exibir uma mensagem curta de uso e sair.

-V, --versão
Exiba a versão do programa e saia.

CONFORME TO


O sprof comando é uma extensão GNU, não presente em POSIX.1.

EXEMPLO


O exemplo a seguir demonstra o uso de sprof. O exemplo consiste em um principal
programa que chama duas funções em um objeto compartilhado. Primeiro, o código do programa principal:

$ gato programa.c
#incluir

vazio x1 (vazio);
vazio x2 (vazio);

int
main (int argc, char * argv [])
{
x1 ();
x2 ();
sair (EXIT_SUCCESS);
}

As funções x1 () e x2 () são definidos no seguinte arquivo de origem que é usado para
construir o objeto compartilhado:

$ gato libdemo.c
#incluir

anular
consumeCpu1 (int lim)
{
intj;

para (j = 0; j <lim; j ++)
getppid ();
}

anular
x1 (vazio) {
intj;

para (j = 0; j <100; j ++)
consumir CPU1(200000);
}

anular
consumeCpu2 (int lim)
{
intj;

para (j = 0; j <lim; j ++)
getppid ();
}

anular
x2 (vazio)
{
intj;

para (j = 0; j <1000; j ++)
consumir CPU2(10000);
}

Agora vamos construir o objeto compartilhado com o nome real libdemo.so.1.0.1, e o soname
libdemo.so.1:

$ cc -g -fPIC -compartilhado -Wl, -soname, libdemo.so.1 \
-o libdemo.so.1.0.1 libdemo.c

Em seguida, construímos links simbólicos para o soname da biblioteca e o nome do linker da biblioteca:

$ ln -sf libdemo.so.1.0.1 libdemo.so.1
$ ln -sf libdemo.so.1 libdemo.so

Em seguida, compilamos o programa principal, ligando-o ao objeto compartilhado e, em seguida, listamos o
dependências dinâmicas do programa:

$ cc -g -o prog programa.c -EU. -ldemo
$ ldd prog
linux-vdso.so.1 => (0x00007fff86d66000)
libdemo.so.1 => não encontrado
libc.so.6 => /lib64/libc.so.6 (0x00007fd4dc138000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)

A fim de obter informações de perfil para o objeto compartilhado, definimos o ambiente
variável LD_PROFILE com o soname da biblioteca:

$ exportar LD_PROFILE = libdemo.so.1

Em seguida, definimos a variável de ambiente LD_PROFILE_OUTPUT com o nome do caminho do
diretório onde a saída do perfil deve ser gravada e crie esse diretório se ele não
já existe:

$ exportar LD_PROFILE_OUTPUT = $ (pwd) / prof_data
$ mkdir -p $ LD_PROFILE_OUTPUT

LD_PROFILE faz com que a saída de criação de perfil seja anexado para o arquivo de saída, se já existir,
portanto, garantimos que não haja dados de criação de perfil preexistentes:

$ rm -f $ LD_PROFILE_OUTPUT / $ LD_PROFILE.profile

Em seguida, executamos o programa para produzir a saída de perfil, que é gravada em um arquivo no
diretório especificado em LD_PROFILE_OUTPUT:

$ LD_LIBRARY_PATH =. ./prog
$ ls dados_profissionais
libdemo.so.1.profile

Em seguida, usamos o sprof -p opção de gerar um perfil plano com contagens e tiques:

$ sprof -p libdemo.so.1 $ LD_PROFILE_OUTPUT / libdemo.so.1.profile
Perfil plano:

Cada amostra conta como 0.01 segundos.
% auto cumulativo total
tempo segundos segundos nos liga / ligue para nós / nome do telefone
60.00 0.06 0.06 100 600.00 consumeCpu1
40.00 0.10 0.04 1000 40.00 consumeCpu2
0.00 0.10 0.00 1 0.00 x1
0.00 0.10 0.00 1 0.00 x2

O sprof -q opção gera um gráfico de chamadas:

$ sprof -q libdemo.so.1 $ LD_PROFILE_OUTPUT / libdemo.so.1.profile

index% time self children chamados name

0.00 0.00 100/100 x1 [1]
[0] 100.0 0.00 0.00 100 consumeCpu1 [0]
-----------------------------------------------
0.00 0.00 1/1
[1] 0.0 0.00 0.00 1 x1 [1]
0.00 0.00 100/100 consumeCpu1 [0]
-----------------------------------------------
0.00 0.00 1000/1000 x2 [3]
[2] 0.0 0.00 0.00 1000 consumeCpu2 [2]
-----------------------------------------------
0.00 0.00 1/1
[3] 0.0 0.00 0.00 1 x2 [3]
0.00 0.00 1000/1000 consumeCpu2 [2]
-----------------------------------------------

Acima e abaixo, o " "strings representam identificadores que estão fora do
objeto com perfil (neste exemplo, são instâncias de a Principal()).

O sprof -c opção gera uma lista de pares de chamadas e o número de suas ocorrências:

$ sprof -c libdemo.so.1 $ LD_PROFILE_OUTPUT / libdemo.so.1.profile
x1 1
x1 consome CPU1 100
x2 1
x2 consome CPU2 1000

Use sprof online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad




×
Anúncios
❤ ️Compre, reserve ou compre aqui — sem custos, ajuda a manter os serviços gratuitos.