Замер времени работы   

   

Часто бывает необходимо засечь время выполнения определенных участков программы. При этом не всегда удобно пользоваться отладчиком. Вот мой вариант решения такой задачи:

Для начала добавим в глобальный модуль переменные:
// Для замера времени
Перем Ч1, М1, С1;
Перем СтартДата;

Далее добаляем процедуру занесения в эти переменные первоначальных значений:
Процедура глНачатьЗамер() Экспорт
    СтартДата=ТекущаяДата();
    ТекущееВремя(Ч1, М1, С1);
КонецПроцедуры

Затем добавляем функцию, которая будет получать значение текущего времени, сравнивать с сохраненным (с учетом даты) и возвращать текстовую строку:
Функция глЗакончитьЗамер() Экспорт
    Перем Ч2, М2, С2;
    КонДни=0;
    КонЧасы=0;
    КонМинуты=0;
    КонСекунды=0;
    КонДата=ТекущаяДата();
    ТекущееВремя(Ч2, М2, С2);
    Если ПустоеЗначение(СтартДата)=1 Тогда
        // Раз нет стартовой даты - значит процедура начала отсчета времени не была запущена.
        Возврат "Не начат";
    КонецЕсли;
    Разница=КонДата-СтартДата;
    НачВремя=Ч1*3600+М1*60+С1;
    КонВремя=Разница*86400+Ч2*3600+М2*60+С2;
    ОстатокВремени=КонВремя-НачВремя;
    КонДни=Цел(ОстатокВремени/86400);
    ОстатокВремени=ОстатокВремени-КонДни*86400;
    КонЧасы=Цел(ОстатокВремени/3600);
    ОстатокВремени=ОстатокВремени-КонЧасы*3600;
    КонМинуты=Цел(ОстатокВремени/60);
    ОстатокВремени=ОстатокВремени-КонМинуты*60;
    КонСекунды=ОстатокВремени;
    ТекСтрока=Строка(КонДни)+"/"+Формат(КонЧасы,"Ч(0)2")+":"+Формат(КонМинуты,"Ч(0)2")+":"+Формат(КонСекунды,"Ч(0)2"); //WWWolfy
    СтартДата="";
    Ч1=0;
    М1=0;
    С1=0;
    Возврат ТекСтрока;
КонецФункции

В результате работы функция возвращает 10-ти значное строковое значение времени. К примеру, если прошло 5 минут 45 секунд, то возвращаемая строка будет иметь вид "0/00:05:45".

Я использую эти функции во всех своих отчетах: если кто-то жалуется, что отчет работает "медленно", всегда можно видеть, сколько времени он работает.


 


 

Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").

Статья: Замер времени работы

Перейти на главную страницу компании "Софтпоинт"