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

  第一次写ASP类,实现功能:分段统计程序执行时间,输出统计表等.

  

复制代码 代码如下:

  Class ccClsProcessTimeRecorder

  '程序作者:明月星光

  '作者主页:http://www.5iya.com/blog

  'http://www.kuozhanming.com

  '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 = "<br />" & 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 = "<br />" & 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