WEB开发网
开发学院WEB开发ASP ASP程序代码执行时间统计类 阅读

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

 2009-06-04 10:42:39 来源:WEB开发网   
核心提示:实现功能:分段统计程序执行时间、输出统计表等。类源码: 程序代码Class ccClsPRocessTimeRecorder'程序作者:明月星光'作者主页:http://www.5iya.com/blog'http://www.kuozhanming.com'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

Tags:ASP 程序 代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接