ASP程序代码执行时间统计类

2006-01-18 16:19:23

作者: lamking2005-9-27 7:17:03 实现功能:分段统计程序执行时间,输出统计表等. 程序代码: Class cc_Process_Time_Recorder '程序作者:明月星光 '作者主页:http://www.5iya.com/blog 'http://www.kuozhanming.com 'ASP程序代码执行时间统计类 Private ccPTR_Start_Time,ccPTR_End_Time,ccPTR_Now,ccPTR_Nonce Private ccPTR_interval,ccPTR_event,ccPTR_time,ccPTR_decimal,ccPTR_statistic,ccPTR_format,ccPTR_i,ccPTR_Nonce_Time Private ccPTR_arrEvent,ccPTR_arrTime Private Sub Class_Initialize ccPTR_interval = "|" '默认分隔符 ccPTR_decimal = 4 '小数点后位数 ccPTR_event = "" ccPTR_time = "" ccPTR_format = "<br />" & vbCrLf ccPTR_Start_Time = Timer ccPTR_Now = ccPTR_Start_Time ccPTR_Nonce = ccPTR_Start_Time End Sub Public Sub Record(ccPTR_eventname) ccPTR_event = ccPTR_event & ccPTR_interval & Replace(ccPTR_eventname,ccPTR_interval,"") ccPTR_time = ccPTR_time & ccPTR_interval & FormatNumber(Timer-ccPTR_Now,ccPTR_decimal,True,False,True) ccPTR_Now = Timer End Sub Public Property Let Format(ccPTR_formattype) If LCase(Trim(ccPTR_formattype)) = "html" Then ccPTR_format = "<br />" & vbCrLf Else ccPTR_format = vbCrLf End If End Property Public Function Statistic If InStr(ccPTR_event,ccPTR_interval) > 0 Then ccPTR_End_Time = Timer ccPTR_arrEvent = Split(ccPTR_event,ccPTR_interval) ccPTR_arrtime = Split(ccPTR_time,ccPTR_interval) ccPTR_statistic = ccPTR_statistic & "Process Time Record" & ccPTR_format ccPTR_statistic = ccPTR_statistic & "--------------------------------------" & ccPTR_format For ccPTR_i = 1 To UBound(ccPTR_arrEvent) ccPTR_statistic = ccPTR_statistic & ccPTR_arrEvent(ccPTR_i) & " : " & ccPTR_arrTime(ccPTR_i) & " s" & ccPTR_format Next ccPTR_statistic = ccPTR_statistic & "--------------------------------------" & ccPTR_format ccPTR_statistic = ccPTR_statistic & "Total : " & FormatNumber(ccPTR_End_Time-ccPTR_Start_Time,ccPTR_decimal,True,False,True) & " s" Statistic = ccPTR_statistic Else Statistic = "No Record" End If End Function Public Function Nonce ccPTR_Nonce_Time = FormatNumber(Timer-ccPTR_Nonce,ccPTR_decimal,True,False,True) ccPTR_Nonce = Timer Nonce = ccPTR_Nonce_Time End Function Public Function Total Total = FormatNumber(Timer-ccPTR_Start_Time,ccPTR_decimal,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 cc_Process_Time_Recorder 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.0625 s 开方 : 0.1094 s -------------------------------------- Total : 0.2344 s