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

网络编程 2021-07-05 10:58www.168986.cn编程入门
第一次写ASP类,实现功能:分段统计程序执行时间,输出统计表等. 
代码如下:

Class ClsProcessTimeRecorder 
'程序作者:明月星光 
'作者主页:http://.5iya./blog 
'http://.kuozhanming. 
'ASP程序代码执行时间统计类 

  Private Inti,IntNonceTime,IntDecimal 
  Private IntStartTime,IntEndTime,IntNow,IntNonce 
  Private StrInterval,StrEvent,StrTime,StrStatisticLog,StrFormatInterval 
  Private ArrEvent,ArrTime 

  Private Sub Class_Initialize 
    StrInterval = "|"  '默认分隔符 
    IntDecimal = 4    '小数点后位数 
    StrEvent = "" 
    StrTime = "" 
    StrFormatInterval = "<br />" & vbCrLf 
    IntStartTime = Timer 
    IntNow = IntStartTime 
    IntNonce = IntStartTime 
  End Sub 

  Public Sub Record(StrEventName) 
    StrEvent = StrEvent & StrInterval & Replace(StrEventName,StrInterval,"") 
    StrTime = StrTime & StrInterval & FormatNumber(Timer-IntNow,IntDecimal,True,False,True) 
    IntNow = Timer 
  End Sub 

  Public Property Let Format(StrFormatType) 
    If LCase(Trim(StrFormatType)) = "html" Then 
      StrFormatInterval = "<br />" & vbCrLf 
    Else 
      StrFormatInterval = vbCrLf 
    End If 
  End Property 

  Public Function Statistic 
    If InStr(StrEvent,StrInterval) > 0 Then 
      IntEndTime = Timer 
      ArrEvent = Split(StrEvent,StrInterval) 
      ArrTime = Split(StrTime,StrInterval) 
      StrStatisticLog = StrStatisticLog & "Process Time Record" & StrFormatInterval 
      StrStatisticLog = StrStatisticLog & "--------------------------------------" & StrFormatInterval 
      For Inti = 1 To UBound(ArrEvent) 
        StrStatisticLog = StrStatisticLog & ArrEvent(Inti) & " : " & ArrTime(Inti) & " s" & StrFormatInterval 
      Next 
      StrStatisticLog = StrStatisticLog & "--------------------------------------" & StrFormatInterval 
      StrStatisticLog = StrStatisticLog & "Total : " & FormatNumber(IntEndTime-IntStartTime,IntDecimal,True,False,True) & " s" 
      Statistic = StrStatisticLog 
    Else 
      Statistic = "No Record" 
    End If 
  End Function 

  Public Function Nonce 
    IntNonceTime = FormatNumber(Timer-IntNonce,IntDecimal,True,False,True) 
    IntNonce = Timer 
    Nonce = IntNonceTime 
  End Function 

  Public Function Total 
    Total = FormatNumber(Timer-IntStartTime,IntDecimal,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 ClsProcessTimeRecorder 
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

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by