Skip to content

Instantly share code, notes, and snippets.

@EvilBeaver
Created February 24, 2021 19:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EvilBeaver/11c252f13199afca45c350442bd6dcfb to your computer and use it in GitHub Desktop.
Save EvilBeaver/11c252f13199afca45c350442bd6dcfb to your computer and use it in GitHub Desktop.
Тесты производительности Решето Эратосфена
Н = 50000000;
Массив = Новый Массив();
Массив.Добавить(Ложь);
Массив.Добавить(Ложь);
Для индекс = 2 По Н Цикл
Массив.Добавить(Истина);
КонецЦикла;
времяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
Для индекс = 2 По Н Цикл
Если Массив[индекс] Тогда
квадрат = индекс * индекс;
Если квадрат <= Н Тогда
м = квадрат;
Пока м <= Н Цикл
Массив[м] = Ложь;
м = м + индекс;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
времяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах();
Сообщить("" + (времяОкончания - времяНачала)/1000);
метод Скрипт()
знч Н = 5000000
пер Массив = новый Массив()
Массив.Добавить(Ложь)
Массив.Добавить(Ложь)
для индекс = 2 по Н
Массив.Добавить(Истина)
;
знч времяНачала = ДатаВремя.Сейчас()
для индекс = 2 по Н
если Массив[индекс]
пер квадрат = индекс*индекс
если квадрат <= Н
пер м = квадрат
пока м <= Н
Массив[м] = Ложь
м += индекс
;
;
;
;
знч времяОкончания = ДатаВремя.Сейчас()
знч мсЦикла = (времяОкончания - времяНачала).ВМиллисекундах()
Консоль.Записать("" + (мсЦикла/1000))
;
@kuntashov
Copy link

Консоль.Записать("" + (мсЦикла/1000))

Консоль.Записать("%{ мсЦикла/1000 }")

А если по теме, то меня пока больше всего смущает медленный старт скрипта до момента, пока он делом начнет заниматься. Если исходить из концепции, что 1С:Исполнитель - для скриптинга, то есть для написания относительно небольших быстрых скриптов, очевидно ожидать, что время "на разгон" должно быть ничтожно мало по сравнению со временем выполнения самого скрипта, а сейчас получается чуть ли не обратное:

2021-02-25_15-42

("Инициализация" на скриншоте - это время заполнения массива).

Для сравнения время бутстрапа односкрипта - 0.06s на той же машине (при этом он многобукв выводит), у php 0.04, бутстрап python'а и perl'а ничтожно мал и time его не может уже посчитать.

2021-02-25_15-55

@perfolenta
Copy link

В первом файле указано 50 млн циклов, а во втором только 5... народ не глядя запускает и удивляется, почему Исполнитель работает быстрее Односкрипта... :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment