Ao escrever um programa JavaScript, se você precisar conhecer o tempo de execução de uma determinada peça de código, poderá usar o console.Time (). No entanto, ao analisar os programas JavaScript com lógica mais complexa e tentar encontrar gargalos de desempenho, o console.Time () não é aplicável - a análise aprofundada da operação de programas JavaScript com lógica mais complexa significa inserir um grande número de instruções de console.time (), que não é intrompante. Para o ajuste do programa JavaScript com a lógica complexa, a maneira correta é usar o console.profile ().
Suporte do navegador
O Firefox, o Google Chrome e o Safari, que instalaram o plug -in Firebug, todos as instruções de suporte ao console.profile () e as versões mais recentes do IE e da Opera também fornecem funções de perfil. O uso do console.profile () em vários navegadores importantes é semelhante. Este artigo apresenta apenas o uso do console.profile () em Firebug. Uma coisa que vale a pena notar é que, se você usar o console do Firebug para escrever diretamente o código experimental JavaScript, o console.profile () é inválido.
Uso de console.profile ()
O uso do console.profile () é muito simples: insira console.profile () onde você precisa iniciar o perfil e insira console.profileEnD () onde você termina o perfil. O código a seguir é um exemplo:
A cópia do código é a seguinte:
função Dotask () {
Dosubtaska (1000);
Dosubtaska (100000);
DosubtaskB (10000);
Dosubtaskc (1000.10000);
}
função Dosubtaska (contagem) {
for (var i = 0; i <contagem; i ++) {}
}
função Dosubtaskb (contagem) {
for (var i = 0; i <contagem; i ++) {}
}
função Dosubtaskc (countx, condado) {
for (var i = 0; i <countx; i ++) {
for (var j = 0; j <condado; j ++) {}
}
}
console.profile ();
Dotask ();
console.profileend ();
Execute console.profile () antes de executar a função Dotask (). Após a conclusão da função Dotask (), as informações detalhadas durante o processo de execução da função Dotask () podem ser coletadas. Você pode ver no console da Firebug:
A partir dos resultados, podemos ver que o tempo de perfil é de 101.901ms no total, envolvendo 5 chamadas de função. O título padrão do resultado é "perfil", que pode ser personalizado pela passagem de parâmetros para a função console.profile (). Por exemplo, o uso do console.profile ("Perfil de teste") pode alterar o título desse perfil para "perfil de teste" no resultado, o que é especialmente útil quando vários processos de perfil são executados simultaneamente. O significado de cada coluna no resultado específico do perfil é:
1. Função. Nome da função.
2.Calls. Número de chamadas. Por exemplo, no exemplo acima, a função Dosubtaska () é executada duas vezes.
3.Corcent. A porcentagem do tempo consumido por essa chamada de função no tempo total.
4. Propriedade. Excluindo o tempo necessário para chamar outras funções, a quantidade de tempo gasta pela própria função. Por exemplo, no exemplo acima, o Dotask (), sem dúvida, levou muito tempo para executar, mas como demorou o tempo todo para chamar outras funções, não levou muito tempo, apenas 0,097ms.
5.Time. Em contraste com o tempo próprio, o cálculo total demorado da função não é considerado quando chama os fatores de chamada para outras funções. No exemplo acima, a função Dotask () executa 101.901ms. Por tempo e tempo, você também pode tirar uma conclusão: se o tempo for maior que o tempo próprio, a chamada para outras funções está envolvida na função.
6.avg. A fórmula de cálculo é: avg = tempo/chamadas. No exemplo acima, a função Dosubtaska () foi executada duas vezes e seu tempo total foi de 1,054m, portanto, seu tempo total médio foi de 0,527ms.
7.Min. Tempo mínimo consome para chamar essa função. Por exemplo, no exemplo acima, a função Dosubtaska () é executada duas vezes e seu tempo mínimo consome é que a chamada que leva menos tempo para gastar 0,016ms.
8.Max. O tempo máximo para chamar essa função. Por exemplo, no exemplo acima, a função Dosubtaska () foi executada duas vezes, e seu processo máximo de demora é que a chamada que levou mais tempo para gastar 1,038ms.
9.File. O arquivo JS onde a função está localizada.
Uso de botões de perfil no Firebug
Além de inserir instruções console.profile () no código JavaScript, o Firebug também fornece um botão de perfil para o código JavaScript de perfil de tempo real e em tempo real na página. A posição do botão é:
Quando um perfil for necessário, você pode pressionar o botão e, se a próxima página operação desencadear qualquer código JavaScript, o Firebug o gravará. No final do processo de perfil, basta pressionar o botão novamente. O resultado final é consistente com o resultado obtido pela inserção da instrução console.profile ().