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