<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="profiling" xml:lang="pt_BR">
    <info>
      <link type="guide" xref="index#profiling"/>
    
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Rafael Fontenelle</mal:name>
      <mal:email>rafaelff@gnome.org</mal:email>
      <mal:years>2016-2018</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Leônidas Araújo</mal:name>
      <mal:email>leorusvellt@hotmail.com</mal:email>
      <mal:years>2022-2024</mal:years>
    </mal:credit>
  </info>
    <title>Perfilamento</title>
  <section id="system-profiling">
    <title>Como perfilar seus sistema</title>
    <p>Quando <app>Sysprof</app> perfila seu sistema, ele grava informações da pilha de todos os aplicativos em execução, incluindo o kernel Linux. Isso pode, em alguns casos, ser confuso, se você deseja apenas olhar um único processo. Se o aplicativo não interage muito com o sistema hospedeiro, você pode obter mais sucesso usando o <app>Sysprof</app> para <link href="profiling#new-process-profiling">criar um novo processo</link>.</p>

    <p>Para perfilar todo o seu sistema, certifique-se que o botão do alvo esteja definido para <em>Todos processos</em> e clique em <em>Gravar</em>.</p>

    <p>Neste momento, você pode ter que <em>autorizar</em> acesso ao perfilador do sistema. Isso é necessário, pois a implementação do perf do kernel Linux requer as permissões do “root” para realizar perfilamento de todo o sistema.</p>

    <p>Durante a sessão de perfilamento, você verá o número de segundos que o perfil está ativo. Clicando no botão <em>Gravar</em> novamente irá parar a sessão de perfilamento. Então, o gráfico de chamadas será exibido.</p>

    <note>
      <p>Se você descobrir que o aplicativo <app>sysprof</app> está mostrando seu gráfico de chamadas de perfilamento, você pode considerar realizar a gravação da sessão de perfilamento com <cmd>sysprof-cli</cmd>. Este é um programa de linha de comando que vai capturar sua sessão de perfilamento para o disco para ser visto em outra ocasião.</p>
    </note>

    <p>Veja <link href="profiling#interpreting-results">interpretando resultados</link> para mais direcionamento.</p>

  </section>

  <section id="new-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Perfilando um novo processo</title>

    <p>Muitas vezes, pode ser necessário gerar um novo processo para criar o perfil. Primeiro, selecione o botão <em>Aplicativo</em> próximo ao topo da janela de gravação. Preencha seu comando e diretório de trabalho e, opcionalmente, especifique quaisquer variáveis de ambiente necessárias. Seu processo será iniciado quando a gravação começar.</p>

    <note>
      <p>Se você está iniciando um processo que requer acesso à sua exibição atual, tal como um aplicativo GTK+, é melhor se certificar de que <em>Herdar o ambiente atual</em> esteja definido.</p>
    </note>

  </section>

  <section id="sysprof-cli">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Perfilando com a ferramenta de linha de comando sysprof-cli</title>

    <p>Para uma sobrecarga mínima, você pode considerar o uso da ferramenta de linha de comando <cmd>sysprof-cli</cmd>. Quando executado sem argumentos, ele vai gravar todo o seu sistema e salvar a saída para <file>capture.syscap</file>. Esse arquivo pode ser aberto com o aplicativo <app>Sysprof</app> para visualizar o gráfico de chamadas.</p>

    <p>Se você quiser gerar um novo processo, use <cmd>sysprof-cli -- 'command'</cmd> para especificar um comando a ser iniciado. O comando herdará o ambiente atual.</p>

  </section>

  <section id="interpreting-results">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Interpretando os resultados</title>

    <p>Os resultados de perfilamento no <app>Sysprof</app> estão divididos em três seções. No canto superior esquerdo está uma lista de todas as funções perfiladas. Elas estão ordenadas pela frequência em que elas foram chamadas durante a gravação.</p>

    <note>
      <p>É importante notar que a quantidade de tempo dispendida para cada função não é capturada. Para isto, seria necessário um perfilador de rastreamento para gravar com precisão. A porcentagem é calculada determinando a frequência que aquela função apareceu no rastreamento de pilha atual quando a amostra foi gravada.</p>
    </note>

    <p>Após selecionar uma função a partir da lista de funções, todos os chamadores gravados daquela função serão exibidos no canto inferior esquerdo. Eles também são ordenados pela porcentagem de amostras, o que inclui aquela função no rastreamento de pilha.</p>

    <p>Na direita, estão todos os descendentes de uma função selecionada. Você pode selecionar uma função da lista de funções ou da lista de chamadores.</p>

    <note>
      <p>Se você vir <em>- - Context Switch - -</em> em seus resultados, isso significa que o aplicativo fez a transição para ou do kernel do Linux. Pode haver vários motivos para isso, como um <em>syscall</em> ou um <em>signal</em>.</p>
    </note>

  </section>

</page>
