Funciones de implementación: estadísticas segmentadas del tiempo de ejecución del programa, salida de tablas estadísticas, etc.
Código fuente de clase:
código de programa
Clase ccClsProcessTimeRecorder
'Autor del programa: Mingyue Xingguang
'Página de inicio del autor: http://www.5iya.com/blog
'http://www.kuozhanming.com
'Código de programa ASP clase de estadísticas de tiempo de ejecución
Private ccInti,ccIntNonceTime,ccIntDecimal
Privado ccIntStartTime, ccIntEndTime, ccIntNow, ccIntNonce
Privado ccStrInterval,ccStrEvent,ccStrTime,ccStrStatisticLog,ccStrFormatInterval
ccArrEvent privado, ccArrTime
Subclase privada_Initialize
ccStrInterval = "|" 'Separador predeterminado
ccIntDecimal = 4 'Número de dígitos después del punto decimal
ccStrEvent = ""
ccStrTime = ""
ccStrFormatInterval = "<br />" & vbCrLf
ccIntStartTime = Temporizador
ccIntNow = ccIntStartTime
ccIntNonce = ccIntStartTime
Fin
del subregistro público secundario (ccStrEventName)
ccStrEvent = ccStrEvent & ccStrInterval & Reemplazar(ccStrEventName,ccStrInterval,"")
ccStrTime = ccStrTime & ccStrInterval & FormatNumber(Timer-ccIntNow,ccIntDecimal,Verdadero,Falso,Verdadero)
ccIntNow = Temporizador
Fin de propiedad sub
pública Let Format (ccStrFormatType)
Si LCase(Trim(ccStrFormatType)) = "html" Entonces
ccStrFormatInterval = "<br />" & vbCrLf
Demás
ccStrFormatInterval = vbCrLf
Terminar si
Estadística de función pública
de propiedad final
Si InStr(ccStrEvent,ccStrInterval) > 0 Entonces
ccIntEndTime = Temporizador
ccArrEvent = Dividir(ccStrEvent,ccStrInterval)
ccArrTime = Dividir(ccStrTime,ccStrInterval)
ccStrStatisticLog = ccStrStatisticLog & "Registro de tiempo de proceso" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "-----------------------------------------" & ccStrFormatInterval
Para ccInti = 1 a 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"
Estadística = ccStrStatisticLog
Demás
Estadística = "Sin registro"
Terminar si
Función Final
Función Pública Nonce
ccIntNonceTime = FormatNumber(Temporizador-ccIntNonce,ccIntDecimal,Verdadero,Falso,Verdadero)
ccIntNonce = Temporizador
Nonce = ccIntNonceTime
Función Final
Función Pública Total
Total = Número de formato (Temporizador-ccIntStartTime, ccIntDecimal, Verdadero, Falso, Verdadero)
Clase final
de función final
Atributos de clase:
1.Formato
Si se deben incluir etiquetas de salto de línea HTML al generar
-html: genera etiquetas de nueva línea HTML y líneas nuevas de texto (predeterminado)
-text: solo genera texto
como método de clase de nueva línea:
1.Record("Nombre de código")
Cuente el tiempo desde la última llamada al método Record hasta el presente (la primera llamada cuenta el tiempo desde que se declaró la clase hasta el momento en que se llamó) y finalmente genere
la función de clase en Estadísticas: (información de devolución inmediata)
1.Nonce
Muestra el tiempo desde la última vez que se llamó a la función nonce hasta el presente (se cuenta el tiempo desde que se declaró la clase por primera vez hasta que se llamó)
2.total
Muestra el tiempo total para declarar la clase hasta ahora.
3.Estadística
Código de ejemplo
para generar todas las estadísticas de registro y el tiempo total del programa
:
código de programa
Dim objRecord,i,k,j,x
Establecer objRecord = Nuevo ccClsProcessTimeRecorder
objRecord.Format = "html"
Para i = 1 a 100000
x = 2 + 2
Siguiente
llamada objRecord.Record("Adición")
Para j = 1 a 100000
x=2*2
Siguiente
llamada objRecord.Record("Multiplicación")
para k = 1 a 100000
x = 2^2
Siguiente
llamada objRecord.Record("raíz cuadrada")
Response.Write objRecord.Statistic
Producción:
Registro de tiempo de proceso
-----------------------------------------
Adición: 0,0625 s
Multiplicación: 0,0469 s
Raíz cuadrada: 0,1094 s
-----------------------------------------
Total: 0,2188 s