Class: Profiler

@nginstack/engine/lib/profiler/Profiler~ Profiler


new Profiler()

Classe que realiza a instrumentação do código fonte para fins de análise de desempenho.

O sistema automaticamente grava no arquivo de log "profiler.log" as estatísticas com tempo de execução superior à configuração "Min RunTime to Log Profiler" existente nas configurações gerais do Manage.

Members


enabled :boolean

Indica que o profiler do Engine está ativo e que estão sendo coletadas estatísticas de desempenho das operações registradas pelos métodos #startOperation e #endOperation.

O profiler do Engine pode ser ativo no Manage, pela variável de ambiente NGIN_PROFILER ou por meio dos parâmetros de linha de comando --enableProfiler e --enableAutoProfiler. Mais detalhes no manual Configuração do Engine.

Type:
  • boolean

forcedLog :boolean

Determina que as estatísticas geradas pelo profiler serão gravadas no arquivo de log "profiler.log", mesmo que o tempo de execução seja inferior à configuração "Min RunTime to Log Profiler" existente nas configurações gerais do Manage.

Type:
  • boolean

Methods


<static> getInstance()

Obtém uma instância compartilhada desta classe.

Returns:
Type
Profiler

endOperation( [details])

Delimita o fim de um trecho do código fonte que será instrumentado pelo profiler.

Parameters:
Name Type Argument Description
details string <optional>

Detalhes sobre o trecho analisado, como os parâmetros de recebidos pela função, resultado ou outras informações relevantes.

See:

excludeFunction(func)

Configura uma função para ser ignorada pelo profiler do Engine.

Parameters:
Name Type Description
func function

Função a ser ignorada pelo profiler.


getHtmlStatistics()

Gera um relatório HTML com as estatísticas geradas pelo Profiler.

See:
Returns:

Relatório no formato HTML.

Type
string

getTxtStatistics()

Gera um relatório TXT com as estatísticas geradas pelo Profiler. Este relatório pode ser analisado pelo processo "/Desenvolvimento/Análise do Log do Profiler".

See:
Returns:

Relatório no formato TXT.

Type
string

startOperation(name [, details] [, sumInteractions])

Delimita o início de um trecho do código fonte que será instrumentado pelo profiler. O trecho analisado será o código contido entre o startOperation() e o endOperation() correspondente. A execução do endOperation() deve ser garantida através de um bloco try..finally. O método startOperation() pode ser chamado dentro de um trecho já instrumentado, criando um aninhamento de operações. Este aninhamento será representando por uma indentação no resultado dos métodos getTxtStatistics() e getHtmlStatistics().

Parameters:
Name Type Argument Description
name string

Identificação do trecho analisado. Se o trecho analisado for o código de um método ou função é uma boa prática adotar a convenção "Class.methodName()" ou "functionName()".

details string <optional>

Detalhes sobre o trecho analisado, como os parâmetros recebidos pela função, resultado ou outras informações relevantes.

sumInteractions boolean <optional>

Indica se as execuções do código instrumentado devem ser totalizadas nas estatísticas geradas pelo profiler, sendo exibido apenas um registro com a quantidade total de execuções. Quando o sumInteractions está ativo o parâmetro details torna-se irrelevante, pois ao totalizar as execuções o details não é preservado.

See:
Example
MyClass.prototype.do = function (){
   profiler.startOperation("MyClass.do()", null, true);
   try {
      myCode;
   } finally {
      profiler.endOperation();
   }
}