Функции реализации: сегментированная статистика времени выполнения программы, вывод статистических таблиц и т.д.
Исходный код класса:
программный код
Класс ccClsProcessTimeRecorder
'Автор программы: Минюэ Сингуан
Домашняя страница автора: 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 'Количество цифр после десятичной точки
ccStrEvent = ""
ccStrTime = ""
ccStrFormatInterval = "<br />" & vbCrLf
ccIntStartTime = Таймер
ccIntNow = ccIntStartTime
ccIntNonce = ccIntStartTime
Завершить
общедоступную подзапись (ccStrEventName)
ccStrEvent = ccStrEvent & ccStrInterval & replace(ccStrEventName,ccStrInterval,"")
ccStrTime = ccStrTime & ccStrInterval & FormatNumber (Timer-ccIntNow, ccIntDecimal, True, False, True)
ccIntNow = Таймер
Конец
общедоступного свойства Let Format(ccStrFormatType)
Если LCase(Trim(ccStrFormatType)) = "html" Тогда
ccStrFormatInterval = "<br />" & vbCrLf
Еще
ccStrFormatInterval = vbCrLf
Конец, если
Статистика публичной функции
конечного свойства
Если InStr(ccStrEvent,ccStrInterval) > 0 Тогда
ccIntEndTime = Таймер
ccArrEvent = Split(ccStrEvent,ccStrInterval)
ccArrTime = Split(ccStrTime,ccStrInterval)
ccStrStatisticLog = ccStrStatisticLog & «Запись времени процесса» & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "-----------------------------------------" & ccStrFormatInterval
Для ccInti = 1 To UBound(ccArrEvent)
ccStrStatisticLog = ccStrStatisticLog & ccArrEvent(ccInti) & " : " & ccArrTime(ccInti) & " s" & ccStrFormatInterval
Следующий
ccStrStatisticLog = ccStrStatisticLog & "-----------------------------------------" & ccStrFormatInterval
ccStrStatisticLog = ccStrStatisticLog & "Total: " & FormatNumber(ccIntEndTime-ccIntStartTime,ccIntDecimal,True,False,True) & " s"
Статистика = ccStrStatisticLog
Еще
Статистика = «Нет записи»
Конец, если
Конечная функция
Открытая функция Nonce
ccIntNonceTime = FormatNumber(Timer-ccIntNonce,ccIntDecimal,True,False,True)
ccIntNonce = Таймер
Одноразовый номер = ccIntNonceTime
Конечная функция
Публичная функция Итого
Итого = FormatNumber(Timer-ccIntStartTime,ccIntDecimal,True,False,True)
Конечная функция
Конечный класс
Атрибуты класса:
1.Формат
Включать ли теги разрыва строки HTML при выводе
-html: вывод HTML-тегов новой строки и текста новой строки (по умолчанию).
-text: выводить только
метод класса новой строки текста:
1.Запись («Кодовое имя»)
Подсчитайте время с момента последнего вызова метода Record до настоящего времени (первый вызов отсчитывает время от объявления класса до момента его вызова) и, наконец, выведите
функцию класса в Статистике: (информация о немедленном возврате)
1.Нонс
Вывести время с момента последнего вызова nonce-функции до настоящего времени (считается время от первого объявления класса до момента его вызова)
2. Всего
Выведите общее время объявления класса до настоящего момента.
3.Статистика
Пример кода
для вывода всей статистики записи и общего времени программы
:
программный код
Dim objRecord,i,k,j,x
Set objRecord = New ccClsProcessTimeRecorder
objRecord.Format = "html"
Для i = от 1 до 100000
х = 2 + 2
Следующий
вызов objRecord.Record("Дополнение")
Для j = от 1 до 100000
х=2*2
Следующий
вызов objRecord.Record("Умножение")
Для k = от 1 до 100000
х = 2^2
Следующий
вызов objRecord.Record("квадратный корень")
Response.Write objRecord.Statistic
Выход:
Запись времени процесса
----------------------------------------------
Сложение: 0,0625 с
Умножение: 0,0469 с
Квадратный корень: 0,1094 с
----------------------------------------------
Итого: 0,2188 с