Funções de implementação: estatísticas segmentadas de tempo de execução do programa, saída de tabelas estatísticas, etc.
Código fonte da classe:
código do programa
Classe ccClsProcessTimeRecorder
'Autor do programa: Mingyue Xingguang
'Página inicial do autor: http://www.5iya.com/blog
'http://www.kuozhanming.com
'Classe de estatísticas de tempo de execução do código do programa ASP
Private ccInti,ccIntNonceTime,ccIntDecimal
Privado ccIntStartTime,ccIntEndTime,ccIntNow,ccIntNonce
Privado ccStrInterval,ccStrEvent,ccStrTime,ccStrStatisticLog,ccStrFormatInterval
ccArrEvent privado, ccArrTime
Subclasse privada_Initialize
ccStrInterval = "|" 'Separador padrão
ccIntDecimal = 4 'Número de dígitos após a vírgula decimal
ccStrEvent = ""
ccStrTime = ""
ccStrFormatInterval = "<br />" & vbCrLf
ccIntStartTime = Temporizador
ccIntNow = ccIntStartTime
ccIntNonce = ccIntStartTime
Fim do
sub-registro público (ccStrEventName)
ccStrEvent = ccStrEvent & ccStrInterval & Substituir(ccStrEventName,ccStrInterval,"")
ccStrTime = ccStrTime & ccStrInterval & FormatNumber(Timer-ccIntNow,ccIntDecimal,True,False,True)
ccIntNow = Temporizador
End Sub
Propriedade Pública Let Format(ccStrFormatType)
Se LCase(Trim(ccStrFormatType)) = "html" Então
ccStrFormatInterval = "<br />" & vbCrLf
Outro
ccStrFormatInterval = vbCrLf
Terminar se
Estatística de função pública
de propriedade final
Se InStr(ccStrEvent,ccStrInterval) > 0 Então
ccIntEndTime = Temporizador
ccArrEvent = Dividir(ccStrEvent,ccStrInterval)
ccArrTime = Dividir(ccStrTime,ccStrInterval)
ccStrStatisticLog = ccStrStatisticLog & "Registro de tempo de processo" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "-------------------------------------------------------" & ccStrFormatInterval
Para ccInti = 1 para UBound (ccArrEvent)
ccStrStatisticLog = ccStrStatisticLog & ccArrEvent(ccInti) & " : " & ccArrTime(ccInti) & " s" & ccStrFormatInterval
Próximo
ccStrStatisticLog = ccStrStatisticLog & "-------------------------------------------------------" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "Total: " & FormatNumber(ccIntEndTime-ccIntStartTime,ccIntDecimal,True,False,True) & " s"
Estatística = ccStrStatisticLog
Outro
Estatística = "Sem registro"
Terminar se
Função Final
Função Pública Nonce
ccIntNonceTime = FormatNumber(Timer-ccIntNonce,ccIntDecimal,True,False,True)
ccIntNonce = Temporizador
Nonce = ccIntNonceTime
Função Final
Função Pública Total
Total = FormatNumber(Timer-ccIntStartTime,ccIntDecimal,True,False,True)
Função Final
Classe Final
Atributos de classe:
1.Formato
Se deve incluir tags de quebra de linha HTML ao gerar
-html: gera tags de nova linha HTML e novas linhas de texto (padrão)
-text: Somente
método de classe de nova linha de texto de saída:
1.Registro("Nome do Código")
Conte o tempo desde a última chamada do método Record até o presente (a primeira chamada conta o tempo desde a declaração da classe até o momento em que foi chamada) e, finalmente, produza
a função da classe em Estatísticas: (informações de retorno imediato)
1.Nonce
Produz o tempo desde a última vez que a função nonce foi chamada até o presente (o tempo desde quando a classe foi declarada pela primeira vez até quando foi chamada é contado)
2.Total
Produza o tempo total para declarar a classe até agora
3.Estatística
Código de exemplo
para gerar todas as estatísticas de registro e tempo total do programa
:
código do programa
Dim objRecord,i,k,j,x
Definir objRecord = Novo ccClsProcessTimeRecorder
objRecord.Format = "html"
Para i = 1 a 100.000
x = 2 + 2
Próxima
chamada objRecord.Record("Adição")
Para j = 1 a 100.000
x=2*2
Próxima
chamada objRecord.Record("Multiplicação")
Para k = 1 a 100000
x = 2 ^ 2
Próxima
chamada objRecord.Record("raiz quadrada")
Response.Write objRecord.Statistic
Saída:
Registro de tempo de processo
-----------------------------------------------
Adição: 0,0625 s
Multiplicação: 0,0469 segundos
Raiz quadrada: 0,1094 s
-----------------------------------------------
Total: 0,2188 segundos