程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP程序代碼執行時間統計類

ASP程序代碼執行時間統計類

編輯:關於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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved