Fonctions d'implémentation : statistiques segmentées du temps d'exécution du programme, sortie de tableaux statistiques, etc.
Code source de la classe :
code de programme
Classe ccClsProcessTimeRecorder
'Auteur du programme : Mingyue Xingguang
'Page d'accueil de l'auteur : http://www.5iya.com/blog
'http://www.kuozhanming.com
'Classe de statistiques de temps d'exécution du code du programme ASP
Private ccInti,ccIntNonceTime,ccIntDecimal
Privé ccIntStartTime, ccIntEndTime, ccIntNow, ccIntNonce
Privé ccStrInterval, ccStrEvent, ccStrTime, ccStrStatisticLog, ccStrFormatInterval
Privé ccArrEvent, ccArrTime
Sous-classe privée_Initialize
ccStrInterval = "|" 'Séparateur par défaut
ccIntDecimal = 4 'Nombre de chiffres après la virgule décimale
ccStrEvent = ""
ccStrTime = ""
ccStrFormatInterval = "<br />" & vbCrLf
ccIntStartTime = Minuterie
ccIntNow = ccIntStartTime
ccIntNonce = ccIntStartTime
Fin du
sous-enregistrement public (ccStrEventName)
ccStrEvent = ccStrEvent & ccStrInterval & Replace(ccStrEventName,ccStrInterval,"")
ccStrTime = ccStrTime & ccStrInterval & FormatNumber (Timer-ccIntNow, ccIntDecimal, True, False, True)
ccIntNow = Minuterie
Fin de la sous
-propriété publique Let Format (ccStrFormatType)
Si LCase(Trim(ccStrFormatType)) = "html" Alors
ccStrFormatInterval = "<br />" & vbCrLf
Autre
ccStrFormatInterval = vbCrLf
Fin si
Statistique de fonction publique
de propriété finale
Si InStr(ccStrEvent,ccStrInterval) > 0 Alors
ccIntEndTime = Minuterie
ccArrEvent = Split(ccStrEvent,ccStrInterval)
ccArrTime = Split(ccStrTime,ccStrInterval)
ccStrStatisticLog = ccStrStatisticLog & "Enregistrement du temps de processus" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "---------------------------------------------" & ccStrFormatInterval
Pour ccInti = 1 Vers UBound (ccArrEvent)
ccStrStatisticLog = ccStrStatisticLog & ccArrEvent(ccInti) & " : " & ccArrTime(ccInti) & " s" & ccStrFormatInterval
Suivant
ccStrStatisticLog = ccStrStatisticLog & "---------------------------------------------" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "Total : " & FormatNumber(ccIntEndTime-ccIntStartTime,ccIntDecimal,True,False,True) & " s"
Statistique = ccStrStatisticLog
Autre
Statistique = "Aucun enregistrement"
Fin si
Fonction de fin
Fonction publique Nonce
ccIntNonceTime = FormatNumber (Timer-ccIntNonce, ccIntDecimal, True, False, True)
ccIntNonce = Minuterie
Nonce = ccIntNonceTime
Fin Fonction
Fonction Publique Total
Total = FormatNumber (Timer-ccIntStartTime, ccIntDecimal, True, False, True)
Classe de fin de
fonction de fin
Attributs de classe :
1.Formater
S'il faut inclure des balises de saut de ligne HTML lors de la sortie
-html : sortie des balises de nouvelle ligne HTML et des nouvelles lignes de texte (par défaut)
-text : seulement afficher
la méthode de classe de nouvelle ligne de texte :
1.Enregistrement ("Nom de code")
Comptez le temps écoulé depuis le dernier appel à la méthode Record jusqu'à aujourd'hui (le premier appel compte le temps écoulé entre le moment où la classe a été déclarée et le moment où elle a été appelée), et enfin affichez
la fonction de classe dans Statistics : (informations de retour immédiate)
1.Nonce
Afficher le temps écoulé depuis le dernier appel de la fonction nonce jusqu'au présent (le temps écoulé entre le moment où la classe a été déclarée pour la première fois et le moment où elle a été appelée est compté)
2.Total
Afficher le temps total pour déclarer la classe jusqu'à maintenant
3.Statistique
Exemple de code
pour afficher toutes les statistiques d'enregistrement et la durée totale du programme
:
code de programme
Dim objRecord,i,k,j,x
Définir objRecord = Nouveau ccClsProcessTimeRecorder
objRecord.Format = "html"
Pour i = 1 à 100000
x = 2 + 2
suivant
objRecord.Record("Ajout")
Pour j = 1 à 100 000
x=2*2
Appel
suivant
objRecord.Record("Multiplication")Pour k = 1 à 100 000
x = 2 ^ 2
suivant
objRecord.Record("racine carrée")
Response.Write objRecord.Statistic
Sortir:
Enregistrement du temps de traitement
-----------------------------------------------
Addition : 0,0625 s
Multiplication : 0,0469 s
Racine carrée : 0,1094 s
-----------------------------------------------
Total : 0,2188 s