Иногда имея несколько вариантов выполнения кода пользуюсь следующими замерами для выяснения, какой код будет выполняться быстрее.
Для 7.7:
//В глобальном модуле:
Перем глТЗамер;
//*****************************************************************************
Процедура глТНачатьЗамер() Экспорт //++ ReLock (19.10.2005)
глТЗамер.ДобавитьЗначение(_GetPerformanceCounter());
КонецПроцедуры
//*****************************************************************************
Функция глТЗакончитьЗамер() Экспорт //++ ReLock (19.10.2005)
КонВремя = _GetPerformanceCounter();
КонДни = 0;
КонЧасы = 0;
КонМинуты = 0;
КонСекунды = 0;
КонМиллиСек = 0;
КолЗамеров = глТЗамер.РазмерСписка();
Если КолЗамеров = 0 Тогда
// Раз нет стартовой даты - значит процедура начала отсчета времени не была запущена.
Возврат "Замер времени не начат!";
КонецЕсли;
ОстатокВремени = КонВремя - глТЗамер.ПолучитьЗначение(КолЗамеров);
КонДни = Цел(ОстатокВремени / 86400000); //++ 86400000 - Количество миллисекунд в сутках
ОстатокВремени = ОстатокВремени - КонДни * 86400000;
КонЧасы = Цел(ОстатокВремени / 3600000); //++ 3600000 - Количество миллисекунд в часе
ОстатокВремени = ОстатокВремени - КонЧасы * 3600000;
КонМинуты = Цел(ОстатокВремени / 60000); //++ 60000 - Количество миллисекунд в минуте
ОстатокВремени = ОстатокВремени - КонМинуты * 60000;
КонСекунды = Цел(ОстатокВремени / 1000); //++ 1000 - Количество миллисекунд в секунде
ОстатокВремени = ОстатокВремени - КонСекунды * 1000;
КонМиллисек = ОстатокВремени;
ТекСтрока = Строка(КонДни) + "/" + Формат(КонЧасы,"Ч(0)2") + ":" + Формат(КонМинуты,"Ч(0)2")
+ ":" + Формат(КонСекунды,"Ч(0)2") + "." + Формат(КонМиллиСек,"Ч(0)3");
глТЗамер.УдалитьЗначение(КолЗамеров);
Возврат ТекСтрока;
КонецФункции
//В процедуре ПриНачалеРаботыСистемы:
глТЗамер = СоздатьОбъект("СписокЗначений");
//Пример выполнения:
глТНачатьЗамер();
//... некоторый кусок кода для замера...
Сообщить("Время выполнения: "+глТЗакончитьЗамер()) ;
Для 8.2:
&НаКлиенте
Перем Замер;
&НаКлиенте
Процедура НачатьЗамер()
Замер = ТекущаяДата();
КонецПроцедуры
&НаКлиенте
Функция ЗакончитьЗамер()
КонВремя = ТекущаяДата();
КонДни = 0;
КонЧасы = 0;
КонМинуты = 0;
КонСекунды = 0;
Если ПустаяСтрока(Замер) Тогда
// Раз нет стартовой даты - значит процедура начала отсчета времени не была запущена.
Возврат "Замер времени не начат!";
КонецЕсли;
ОстатокВремени = КонВремя - Замер;
КонДни = Цел(ОстатокВремени / 86400); //++ 86400 - Количество секунд в сутках
ОстатокВремени = ОстатокВремени - КонДни * 86400;
КонЧасы = Цел(ОстатокВремени / 3600); //++ 3600 - Количество секунд в часе
ОстатокВремени = ОстатокВремени - КонЧасы * 3600;
КонМинуты = Цел(ОстатокВремени / 60); //++ 60 - Количество секунд в минуте
ОстатокВремени = ОстатокВремени - КонМинуты * 60;
КонСекунды = ОстатокВремени;
ТекСтрока = Формат(КонДни,"ЧН=2; ЧН=0; ЧВН=") + "/" + Формат(КонЧасы,"ЧЦ=2; ЧН=0; ЧВН=") + ":"
+ Формат(КонМинуты,"ЧЦ=2; ЧН=0; ЧВН=") + ":" + Формат(КонСекунды,"ЧЦ=2; ЧН=0; ЧВН=");
Возврат ТекСтрока;
КонецФункции