实现功能:分段统计程序执行时间、输出统计表等。
类源码: 程序代码 Class ccClsPRocessTimeRecorder '程序作者:明月星光 '作者主页:5iya/blog 'kuozhanming 'asp
程序代码执行时间统计类
Private ccInti,ccIntNonceTime,ccIntDecimal Private ccIntStartTime,ccIntEndTime,ccIntNow,ccIntNonce Private ccStrInterval,ccStrEvent,ccStrTime,ccStrStatisticLog,ccStrFormatInterval Private ccArrEvent,ccArrTime
Private Sub Class_Initialize ccStrInterval = "|" '默认分隔符 ccIntDecimal = 4 '小数点后位数 ccStrEvent = "" ccStrTime = "" ccStrFormatInterval = "
" &; vbCrLf ccIntStartTime = Timer ccIntNow = ccIntStartTime ccIntNonce = ccIntStartTime End Sub
Public Sub Record(ccStrEventName) ccStrEvent = ccStrEvent &; ccStrInterval &; Replace(ccStrEventName,ccStrInterval,"") ccStrTime = ccStrTime &; ccStrInterval &; FormatNumber(Timer-ccIntNow,ccIntDecimal,True,False,True) ccIntNow = Timer End Sub
Public Property Let Format(ccStrFormatType) If LCase(Trim(ccStrFormatType)) = "html" Then ccStrFormatInterval = "
" &; vbCrLf Else ccStrFormatInterval = vbCrLf End If End Property
Public Function Statistic If InStr(ccStrEvent,ccStrInterval) > 0 Then ccIntEndTime = Timer ccArrEvent = Split(ccStrEvent,ccStrInterval) ccArrTime = Split(ccStrTime,ccStrInterval) ccStrStatisticLog = ccStrStatisticLog &; "Process Time Record" &; ccStrFormatInterval ccStrStatisticLog = ccStrStatisticLog &; "--------------------------------------" &; ccStrFormatInterval For ccInti = 1 To UBound(ccArrEvent) ccStrStatisticLog = ccStrStatisticLog &; ccArrEvent(ccInti) &; " : " &; ccArrTime(ccInti) &; " s" &; ccStrFormatInterval Next ccStrStatisticLog = ccStrStatisticLog &; "--------------------------------------" &; ccStrFormatInterval ccStrStatisticLog = ccStrStatisticLog &; "Total : " &; FormatNumber(ccIntEndTime-ccIntStartTime,ccIntDecimal,True,False,True) &; " s" Statistic = ccStrStatisticLog Else Statistic = "No Record" End If End Function
Public Function Nonce ccIntNonceTime = FormatNumber(Timer-ccIntNonce,ccIntDecimal,True,False,True) ccIntNonce = Timer Nonce = ccIntNonceTime End Function
Public Function Total Total = FormatNumber(Timer-ccIntStartTime,ccIntDecimal,True,False,True) End Function
End Class
类属性: 1.Format 输出时是否带HTML换行标签
-html:输出
HTML换行标签和文本换行符(默认) -text:仅输出文本换行符
类方法: 1.Record("Code Name") 统计自上一次调用Record方法至现在的时间(第一次调用时统计声明类时至调用时时间),最后在 Statistic中输出
类函数:(即时返回信息) 1.Nonce 输出自上一次调用nonce函数至现在的时间(第一次调用时统计声明类时至调用时时间) 2.Total 输出声明类到现在总时间 3.Statistic 输出所有Record统计信息和总程序时间
实例代码: 程序代码 Dim objRecord,i,k,j,x
Set objRecord = New ccClsProcessTimeRecorder objRecord.Format = "html"
For i = 1 To 100000 x = 2 + 2 Next
Call objRecord.Record("加法") For j = 1 To 100000 x = 2 * 2 Next
Call objRecord.Record("乘法")
For k = 1 To 100000 x = 2 ^ 2 Next
Call objRecord.Record("开方")
Response.Write objRecord.Statistic
输出:
Process Time Record
--------------------------------------
加法 : 0.0625 s
乘法 : 0.0469 s
开方 : 0.1094 s
--------------------------------------
Total : 0.2188 s