Usando o perfil de execução obtido (Erro: Origem da referência não encontrada), temos diversas informações que nos auxiliaram a detectar onde pode estar ocorrendo o gargalo e onde podemos melhorar.
Nesta tela, temos:
- Fontes (Erro: Origem da referência não encontrada A) - lista de arquivos-fontes que foram carregados para a execução do teste;
- Dados (Erro: Origem da referência não encontrada B) - dados estatísticos de cada programa/função executada;
Informações resumidas
As informações resumidas, lhe dá uma visão geral do perfil da execução que acabou de fazer. Analisando Fontes, vemos que o arquivo-fonte calcFatorial.prw, consumiu cerca de 67% do tempo total de processamento. Já os identificados como internal (funções internas do Protheus), consumiram cerca de 33% e os demais, a medição foi insignificante (0%).
Selecione, em Fontes, o arquivo-fonte calcFatorial, obtendo algo semelhante a:
_Tela 7: Dados do perfil filtrados pelo arquivo-fonte calcTutorial.prw_Na área de dados (Erro: Origem da referência não encontrada A), temos:
- Programa/Função, identifica o nome do programa ou função;
- Chamadas, número de vezes que foi chamado;
- Linha, identifica a linha do fonte (ver "Informação detalhada");
- Tempo Médio (ms), tempo médio de execução por chamada;
- Tempo Total (ms), tempo total de todas as chamadas;
- Fonte, arquivo-fonte onde esta definida a entrada da função.
Informação detalhada
Ao passar o mouse sobre a área de dados, aparecerá do lado esquerdo de cada nome do programa/função (Erro: Origem da referência não encontrada B) uma pequena seta. Acionando-a, você obterá um detalhamento daquela função/programa.
Tela 8: Detalhes do perfil de execução do u_calcFatorial_Se você acionar um _duplo-click sobre uma linha dos dados, o editor abrirá o fonte e posicionando-o na linha do arquivo-fonte. A coluna Chamadas, indica o número de vezes que a linha foi executada e a coluna Linha identifica o número da linha do fonte.
Analisando-se os tempos e número de chamadas/execuções, podemos efetuar alterações no fonte, visando melhorar o seu desempenho.
Funções/programa que possuem interação com o usuário, por exemplo a MsgAlert e entrada de dados (get e similares), podem gerar distorções em função da velocidade de resposta do usuário.