구현기능 : 프로그램 실행시간의 분할통계, 통계표 출력 등
클래스 소스 코드:
프로그램 코드
클래스 ccClsProcessTimeRecorder
'프로그램 작성자: Mingyue Xingguang
'작가 홈페이지 : http://www.5iya.com/blog
'http://www.kuozhanming.com
'ASP 프로그램 코드 실행 시간 통계 클래스
Private ccInti,ccIntNonceTime,ccIntDecimal
비공개 ccIntStartTime,ccIntEndTime,ccIntNow,ccIntNonce
비공개 ccStrInterval,ccStrEvent,ccStrTime,ccStrStatisticLog,ccStrFormatInterval
프라이빗 ccArrEvent,ccArrTime
프라이빗 하위 클래스_Initialize
ccStrInterval = "|" '기본 구분 기호
ccIntDecimal = 4 '소수점 이하 자릿수
ccStr이벤트 = ""
ccStrTime = ""
ccStrFormatInterval = "<br />" & vbCrLf
ccIntStartTime = 타이머
ccIntNow = ccIntStartTime
ccIntNonce = ccIntStartTime
하위 공개 하위 레코드 종료
(ccStrEventName)
ccStrEvent = ccStrEvent & ccStrInterval & 바꾸기(ccStrEventName,ccStrInterval,"")
ccStrTime = ccStrTime & ccStrInterval & FormatNumber(Timer-ccIntNow,ccIntDecimal,True,False,True)
ccIntNow = 타이머
End Sub
공용 속성 Let Format(ccStrFormatType)
LCase(Trim(ccStrFormatType)) = "html"이면 다음과 같습니다.
ccStrFormatInterval = "<br />" & vbCrLf
또 다른
ccStrFormatInterval = vbCrLf
종료 조건
끝 속성
공개 함수 통계
InStr(ccStrEvent,ccStrInterval) > 0이면
ccIntEndTime = 타이머
ccArrEvent = 분할(ccStrEvent,ccStrInterval)
ccArrTime = 분할(ccStrTime,ccStrInterval)
ccStrStatisticLog = ccStrStatisticLog & "처리 시간 기록" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "----------------------------" & ccStrFormatInterval
ccInti = 1에서 UBound(ccArrEvent)로
ccStrStatisticLog = ccStrStatisticLog & ccArrEvent(ccInti) & " : " & ccArrTime(ccInti) & " s" & ccStrFormatInterval
다음
ccStrStatisticLog = ccStrStatisticLog & "----------------------------" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "총계: " & FormatNumber(ccIntEndTime-ccIntStartTime,ccIntDecimal,True,False,True) & " s"
통계 = ccStrStatisticLog
또 다른
통계 = "기록 없음"
종료 조건
종료 함수
공개 함수 Nonce
ccIntNonceTime = 형식 번호(타이머-ccIntNonce,ccIntDecimal,True,False,True)
ccIntNonce = 타이머
Nonce = ccIntNonceTime
종료 함수
공개 함수 합계
합계 = 형식 번호(타이머-ccIntStartTime,ccIntDecimal,True,False,True)
종료 함수
종료 클래스
클래스 속성:
1.형식
출력시 HTML 줄 바꿈 태그 포함 여부
-html: HTML 줄바꿈 태그 및 텍스트 줄바꿈 출력(기본값)
-text: 텍스트 개행
클래스 메소드만 출력합니다:
1.Record("코드명")
마지막으로 Record 메소드를 호출한 이후부터 현재까지의 시간을 셉니다(첫 번째 호출은 클래스가 선언된 시점부터 호출된 시점까지의 시간을 셉니다). 마지막으로
Statistics: (즉시 반환 정보)에 클래스 함수를
출력합니다.
1.논스
Nonce 함수가 마지막으로 호출된 이후부터 현재까지의 시간을 출력(클래스가 처음 선언된 시점부터 호출된 시점까지의 시간을 카운트함)
2.합계
지금까지 클래스를 선언하는 데 걸린 총 시간을 출력합니다.
3.통계
모든 기록 통계 및 총 프로그램 시간을 출력하는
예제 코드
:
프로그램 코드
Dim objRecord,i,k,j,x
objRecord 설정 = New ccClsProcessTimeRecorder
objRecord.Format = "html"
i의 경우 = 1 ~ 100000
x = 2 + 2
다음
호출 objRecord.Record("추가")
j = 1 ~ 100000의 경우
x=2*2
다음
호출 objRecord.Record("Multiplication")
For k = 1 ~ 100000
엑스 = 2^2
다음
호출 objRecord.Record("제곱근")
Response.Write objRecord.Statistic
산출:
처리 시간 기록
----------------------------------
추가: 0.0625초
곱셈: 0.0469초
제곱근: 0.1094초
----------------------------------
총계: 0.2188초