Замер производительности
Для более точных замеров — с версии платформы можно использовать метод ГК
1 2 3 4 5 6 7 8 9 10 11 |
докВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах(); //процедура замера докВремяКонцаВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах(); докДельта = (докВремяКонцаВыполнения - докВремяНачала) / 1000; докДельтаПредставление = ПолучитьПредставлениеВремени(докДельта); Функция ПолучитьПредставлениеВремени(Время) Секунды = Время % 60; Минуты = (Время-Секунды)/60; Минуты = Минуты % 60; Часы = (Время-Секунды-Минуты)/3600; Возврат "" + Окр(Часы) + " ч. " + Окр(Минуты) + " мин. " + Окр(Секунды, 2) + " сек."; КонецФункции |
или
1 2 3 4 5 6 7 8 9 10 11 12 |
Старт = ТекущаяДата(); // Произвольный код.... Финиш = ТекущаяДата(); КолСекундЛог = Финиш - Старт; чч = ЦЕЛ(КолСекундЛог/3600); мм = ЦЕЛ((КолСекундЛог - чч*3600)/60); сс = КолСекундЛог - чч*3600 - мм*60; СтрокаВремя = Формат(чч, "ЧЦ=2; ЧН=; ЧВН=") + ":" + Формат(мм, "ЧЦ=2; ЧН=; ЧВН=") + ":" + Формат(сс, "ЧЦ=2; ЧН=; ЧВН=") + " ("+ КолСекундЛог +" сек.)"; Сообщить("" + ТекущаяДата() + ": обработано за " + СтрокаВремя + ".", СтатусСообщения.Информация); |
или
1 2 3 4 5 6 7 8 9 |
Попытка Scr = Новый COMОбъект("MSScriptControl.ScriptControl"); Исключение Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат 0; КонецПопытки; Scr.Language = "javascript"; Время = Scr.Eval("new Date().getTime()"); Возврат Время; |
или
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
// клиентский модуль Процедура ЗасечьТаймер() Экспорт УправляемыйИнтерфейсСервер.СохранитьЗначениеВХранилище( "ТекВремяТаймера", ТекущаяДата() ); //ПоместитьВоВременноеХранилище( ТекущаяДата(), ); КонецПроцедуры Процедура ПоказатьВремяТаймера( пЗаголовок = "", пЧерезСообщение = Ложь ) Экспорт д = УправляемыйИнтерфейсСервер.ПолучитьЗначениеИзХранилища( "ТекВремяТаймера" ); общ = ТекущаяДата() - д; мин = цел( общ / 60 ); сек = общ - мин * 60; час = цел( мин / 60); мин = мин - час * 60; лВрем = ?( пЧерезСообщение, "Время выполнения:", "Время:" ); Если час <> 0 Тогда лВрем = лВрем + " " + час + " час" КонецЕсли; Если Мин <> 0 Тогда лВрем = лВрем + " " + мин + " мин" КонецЕсли; лВрем = лВрем + " " + сек + " сек"; Если пЧерезСообщение=Ложь Тогда ПоказатьОповещениеПользователя( пЗаголовок, , лВрем ); Иначе Сообщить( ?( ПустаяСтрока( пЗаголовок ), "Действие выполнено", пЗаголовок ) + ". " + лВрем ); КонецЕсли; КонецПроцедуры // серверный модуль УправляемыйИнтерфейсСервер Процедура СохранитьЗначениеВХранилище( пКлюч, пЗначение ) Экспорт ХранилищеСистемныхНастроек.Сохранить( , пКлюч, пЗначение, , ПараметрыСеанса.ТекущийПользователь ); КонецПроцедуры Функция ПолучитьЗначениеИзХранилища( пКлюч ) Экспорт Возврат ХранилищеСистемныхНастроек.Загрузить( , пКлюч, , ПараметрыСеанса.ТекущийПользователь ); КонецФункции // пример использования &НаКлиенте Процедура СделатьЧтоТо() УправляемыйИнтерфейс.ЗасечьТаймер(); // что-то делаем // ...................... УправляемыйИнтерфейс.ПоказатьВремяТаймера("Сделали что-то!"); КонецПроцедуры |
Если у Вас появились вопросы по статье или остались нерешенные проблемы обсудить их Вы можете на Форуме 1С Вопросы и ответы
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.