ASPプログラム実行時間統計類のコードを実現します。
4365 ワード
ASPクラスを初めて書いて、機能を実現します。セグメント別統計プログラムの実行時間、統計表などを出力します。
1.Format
出力時にHTML改行ラベルを持っていますか?
-html:HTMLの改行ラベルとテキストの改行を出力する(デフォルト)
-text:テキストの改行のみを出力します。
クラスの方法:
1.レコード(「コード」 Name")
統計は前回からRecordメソッドを呼び出してから現在までの時間(最初の呼び出し時に統計声明を呼び出した時までの時間)で、最後にStatisticに出力します。
クラス関数:
1.Nonce
前回のnonce関数の呼び出しから現在までの時間を出力します。
2.Total
声明類を出力して今までの総時間
3.Statistic
すべてのレコード統計情報と総プログラム時間を出力します。
インスタンスコード:
Process Time レコード
----------------------------
足し算 : 0.0625 s
掛け算 : 0.0469 s
処方箋 : 0.10.94 s
----------------------------
Total : 0.188 s
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 = "
" & 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 = "
" & 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.レコード(「コード」 Name")
統計は前回からRecordメソッドを呼び出してから現在までの時間(最初の呼び出し時に統計声明を呼び出した時までの時間)で、最後にStatisticに出力します。
クラス関数:
1.Nonce
前回のnonce関数の呼び出しから現在までの時間を出力します。
2.Total
声明類を出力して今までの総時間
3.Statistic
すべてのレコード統計情報と総プログラム時間を出力します。
インスタンスコード:
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 レコード
----------------------------
足し算 : 0.0625 s
掛け算 : 0.0469 s
処方箋 : 0.10.94 s
----------------------------
Total : 0.188 s