Created
February 24, 2021 19:43
-
-
Save EvilBeaver/11c252f13199afca45c350442bd6dcfb to your computer and use it in GitHub Desktop.
Тесты производительности Решето Эратосфена
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Н = 50000000; | |
Массив = Новый Массив(); | |
Массив.Добавить(Ложь); | |
Массив.Добавить(Ложь); | |
Для индекс = 2 По Н Цикл | |
Массив.Добавить(Истина); | |
КонецЦикла; | |
времяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах(); | |
Для индекс = 2 По Н Цикл | |
Если Массив[индекс] Тогда | |
квадрат = индекс * индекс; | |
Если квадрат <= Н Тогда | |
м = квадрат; | |
Пока м <= Н Цикл | |
Массив[м] = Ложь; | |
м = м + индекс; | |
КонецЦикла; | |
КонецЕсли; | |
КонецЕсли; | |
КонецЦикла; | |
времяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); | |
Сообщить("" + (времяОкончания - времяНачала)/1000); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
метод Скрипт() | |
знч Н = 5000000 | |
пер Массив = новый Массив() | |
Массив.Добавить(Ложь) | |
Массив.Добавить(Ложь) | |
для индекс = 2 по Н | |
Массив.Добавить(Истина) | |
; | |
знч времяНачала = ДатаВремя.Сейчас() | |
для индекс = 2 по Н | |
если Массив[индекс] | |
пер квадрат = индекс*индекс | |
если квадрат <= Н | |
пер м = квадрат | |
пока м <= Н | |
Массив[м] = Ложь | |
м += индекс | |
; | |
; | |
; | |
; | |
знч времяОкончания = ДатаВремя.Сейчас() | |
знч мсЦикла = (времяОкончания - времяНачала).ВМиллисекундах() | |
Консоль.Записать("" + (мсЦикла/1000)) | |
; |
В первом файле указано 50 млн циклов, а во втором только 5... народ не глядя запускает и удивляется, почему Исполнитель работает быстрее Односкрипта... :)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
А если по теме, то меня пока больше всего смущает медленный старт скрипта до момента, пока он делом начнет заниматься. Если исходить из концепции, что 1С:Исполнитель - для скриптинга, то есть для написания относительно небольших быстрых скриптов, очевидно ожидать, что время "на разгон" должно быть ничтожно мало по сравнению со временем выполнения самого скрипта, а сейчас получается чуть ли не обратное:
("Инициализация" на скриншоте - это время заполнения массива).
Для сравнения время бутстрапа односкрипта - 0.06s на той же машине (при этом он многобукв выводит), у php 0.04, бутстрап python'а и perl'а ничтожно мал и time его не может уже посчитать.