ASPプログラム実行時間統計類のコードを実現します。

4365 ワード

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 = "
" & 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