Функция Вариант1_ТолькоЦифры(СтрокаПроверки) ЕстьНеЦифры = Ложь; СтрокаПроверки = СокрЛП(СтрокаПроверки); Длина = СтрДлина(СтрокаПроверки); Для а = 1 По Длина Цикл Если Найти("0123456789", Сред(СтрокаПроверки, а, 1)) = 0 Тогда ЕстьНеЦифры = Истина; Прервать; КонецЕсли; КонецЦикла; Возврат Не ЕстьНеЦифры; КонецФункции Функция Вариант2_Попытка(СтрокаПроверки) Попытка СтрокаЧислом = Число(СтрокаПроверки); Возврат Истина; Исключение Возврат Ложь; КонецПопытки; КонецФункции Функция Тест(ФункцияТеста) КолПовторов = 1000; ДанныеДляПроверки = "10%"; ВремяНачала = ТекущаяДата(); Сообщить("Начало теста " + ФункцияТеста + ": " + ВремяНачала); СтрокаКода = ФункцияТеста + "(ДанныеДляПроверки)"; Для а = 0 По КолПовторов Цикл Результат = Вычислить(СтрокаКода); Если Результат = Истина Тогда ЧислоИзСтроки = Число(ДанныеДляПроверки); КонецЕсли; КонецЦикла; ВремяКонца = ТекущаяДата(); Сообщить("Конец теста: " + ВремяКонца); Сообщить("Время теста: " + Строка(ВремяКонца - ВремяНачала) + " с"); КонецФункции Процедура НаборТестов() Экспорт Тест("Вариант1_ТолькоЦифры"); Тест("Вариант2_Попытка"); КонецПроцедуры
результаты для 100 000 проверок
Начало теста Вариант1_ТолькоЦифры: 10.04.2020 11:12:35
Конец теста: 10.04.2020 11:12:46
Время теста: 11 с
Начало теста Вариант2_Попытка: 10.04.2020 11:12:46
Конец теста: 10.04.2020 11:12:59
Время теста: 13 с
Результат:
Попытка Исключение медленнее на 20%
+ Нет комментариев
Добавить свой