A otimização de código é um aspecto essencial da codificação e vários programas ajudam a acompanhar o desempenho do código. As ferramentas de software são referidas Profilers. Se você está procurando um que seja baseado em Linux, você tem GProf à sua disposição.
Trabalhando com o GPROF Profiler
O GPROF é um perfil do GNU que mede o desempenho de um programa. Ele mede o desempenho dos programas escritos em fortran, c ++, montagem e c. Os resultados gerados pelo comando Linux ajudam a otimizar o código para uma execução e eficiência mais rápidas, exibindo as partes do programa que consome o tempo mais de execução.
Para usar o comando gprof para analisar seu programa, você deve compilá -lo usando o -pág opção. Primeiro, vamos criar um programa para usar para o nosso exemplo. Aqui, criamos um programa C, compilamos, executamos a saída com o GPROF e verificamos o relatório gerado pelo GPROF para ver como o comando se executa.
Nosso arquivo de programa é nomeado Demo1.c. Para compilá -lo usando o compilador GCC, você deve adicionar o -pág Opções para adicionar detalhes extras a serem usados pelo GPROF. O comando será:
$ GCC -pg Demo1.C -O output1
Nossa saída compilada é saída1 E uma vez gerado, precisamos executá -lo normalmente usando o seguinte comando:
$ ./output1
A execução deste executável gera os dados de perfil que, por padrão, são nomeados Gmon.fora.
GPROF trabalha com GMON.para ver todos os detalhes sobre o programa.
$ GPROF OUTPUT1 GMON.fora
Observe que o GPROF leva dois argumentos: o programa compilado e o GMON.fora. O relatório de saída contém duas seções: o Profilégio plano e a geração de perfil de chamadas.
Analisando a saída do Profiler do GPROF
1. Perfil plano
Da saída anterior, podemos observar as várias seções do relatório.
A primeira coisa a observar são as várias funções que o programa teve. Nesse caso, tivemos o func3, func2, func1, e Randomnum listado no nome seção. O % tempo representa o tempo de execução de cada uma das funções. Vemos que o func3 levou mais tempo para correr, o que implica que, se precisássemos otimizar nosso programa, é onde começaríamos.
O chamadas representar o número de vezes que cada uma das funções é invocada. Para cada função, o tempo gasto em cada função por chamada é representado no self ms/chamada. Antes de atingir uma função específica, você também pode ver o tempo gasto na função acima dela, o segundos cumulativos, Isso acrescenta o segundo e o tempo gasto nas funções anteriores.
O Segundos auto é o tempo gasto apenas em uma função específica. O Total MS/Chamada é o tempo gasto em uma função, incluindo o tempo gasto em seus descendentes para cada chamada feita para a função.
Usando os detalhes fornecidos anteriormente, agora você pode otimizar o desempenho do seu programa para ver qual parte precisa de alguma reflexão para reduzir o uso de tempo.
2. Gráfico de chamada
É uma tabela representando uma função e seus filhos.
O índice lista a função atual com a qual você pode corresponder ao número com o nome à direita.
O %tempo representa o tempo gasto em uma função e seus filhos enquanto o auto é o tempo gasto na função excluindo seus filhos.
A melhor parte do gráfico de chamadas é que todos os detalhes estão bem representados e você pode obter mais informações sobre quaisquer resultados da saída exibida na sua linha de comando.
Conclusão
O ponto principal é que, ao trabalhar com programas que usam o GCC Compilador, você sempre pode verificar a velocidade de execução deles para saber como otimizá -los melhor. Introduzimos o que é o comando gprof e o que ele faz. Além disso, vimos um exemplo prático de usá -lo para fornecer uma vantagem para otimizar seu código.