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

王朝学院·作者佚名  2009-06-05
窄屏简体版  字體: |||超大  

实现功能:分段统计程序执行时间、输出统计表等。

类源码:

程序代码

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航