Проверил сейчас в 1С предприятии этот кусок кода консолью кода, проверял на двух версиях: 8.3.24 и 8.3.17. Я ожидал, что более новая версия будет тормознутее, но нет. При исполнении на клиенте 8.3.24 показала результат 49 секунд, а 8.3.17 - 58.5 секунд. При выполнении на сервере вообще весело. 44 секунды и 58. То есть 1С оптимизировала свой язык программирования в 1С:Предприятие. Могу только поздравить и от всей души похвалить!
А я надеялся что 1с поглотит oscript и внедрит в себя )) но видимо для них изобретать чугунные велосипеды выгоднее чем поддерживать начинания сообщества ((
Претензии к 1С Executer конечно обоснованы, но будем точны 1С выбрала путь Java и этим все сказано. Почему она не сделала синтаксис 1С на JVM? Зачем нужно было переписывать синтаксис? Java c заданной типизацией может считает Эратосфена 1-2 сек если что.
В конце чуть инфаркт не получил О_о Однажды пытался оптимизировать в OneScript костыльный алгоритм попиксельной работы с графическими файлами (чтение, изменение и т.д.), пришла идея сравнить производительность с платформой, благо можно код копипастить. Тест, занявший в OS полминуты, в платформе я дожидался допивая чай..
да, исполнитель медленный... однако все три интерпретатора 1С, Исполнитель и 1Script это не про скорость вычислений... если нужна скорость, то надо компилятор, а не интерпретатор.... Провел испытания этого кода на Односкрипте и Перфоленте... Односкрипт 113 секунд Перфолента 39 секунд Но если переписать пару строк кода, что бы вместо коллекции Массив использовался обычный "нативный" массив, то Перфолента сразу дает 0,7 секунды... т.е. в 160 раз быстрее, чем Односкрипт... Н = 50000000; Массив Мас[Н] тип Булево = Истина; Мас[0]=Ложь; Мас[1]=Ложь; времяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах(); Для индекс = 2 По Н Цикл Если Мас[индекс] Тогда квадрат = Цел64(индекс) * индекс; Если квадрат
@@alexeibelousov3279 я сравнивал этот тест с C# и Перфолента показала точно такое же время... +/- пару миллисекунд, иногда шарп быстрее иногда Перфолента, видимо зависит от того, что в момент запуска ОС делает...
@@alexeibelousov3279 а вот на Java 15 мне почему-то не удалось добиться высокой скорости, как у Никиты Грызлова получилось... но я Джаву не знаю толком... хочу спросить у Никиты как он её запускал, что бы высокая скорость была... а то она у меня на уровне Односкрипта работает... всего чуть-чуть быстрее...
@@alexeibelousov3279 что-то Ваши комментарии, которые Ютуб мне на почту присылает, здесь не отображаются... интересно, Вы их сами удаляете, или Ютуб отчего-то решил их удалять? Да, на "диком западе", как Вы выразились, php7 и python3 работают значительно быстрее, чем наши домашние Исполнитель и Односкрипт, но тут всё дело в языках, на которых написаны интерпретаторы... интерпретатор написанный на Си или ещё лучше на ассемблере значительно обгонит аналог написанный на языке высокого уровня... зато, усилия необходимые для написания интерпретатора на языке высокого уровня меньше, чем на Си... что бы своё развивалось, его надо поддерживать... помогите Андрею Овсянкину чем можете, и Односкрипт станет быстрее и лучше... а Исполнителю пусть фирма 1С поможет, у неё ресурсов много...
@@serj0peleng там кто то другой видимо писал, мой каммент один, вот висит первый в ветке.. я вродь ничего больше не писал. пс: мне перфолента чуть более интересна чем односкрипт.
предлагаю написать парсер для csv согласно rfc tools.ietf.org/html/rfc4180 Там получается что надо проходить всю строку посимвольно - интересно насколько java будет отличаться рантайм. Я сравнивам жабу с сапом - сап медленнее в 100 раз :( вот тут сорс код на жабе mkyong.com/java/how-to-read-and-parse-csv-file-in-java/
Ворос к авторам - а можно в скрипте диалект поменять в сторону от 1С к примеру сделать его питон подобным? И вообще на будущее словари прикручивать чтоб на диалектах буржуйских можно было писать? С конвертером разумеется... А то сама 1С раскорячилась только на русский и английский - мультиязычный Тузик думаю порвал бы многих в том числе и поделки от 1С.
Сделать транслятор одного варианта языка в другой - задача не сложная, YoptaScript тому пример. Но под новый диалект надо доделывать IDE, а это уже может стать большой проблемой
@Андрей Овсянкин буковки ї или і это у меня от любви к дореформеному, а не к окраїне или ещё каким постсоветским суржекам... По сути - в сам диалект хорошо бы питон подобный диалект прикрутить (просто можем так с удобным копипастом, а можем и так…) (захват пустующей ниши обучения в школах - правда тут ещё графикой озаботится надо - но проще обучать на русском) это раз - ну и два - Вас ждёт немецкий рынок - там уже прикоснулись к 1С и не плохо зашло. Зайдёт ещё лучше если специалисты смогут сами под себя приспосабливать инструмент, которым пользуются - немцам на немецком - небольшая конвертация и иной специалист из другой страны будет на своём пусть и на ломаном, для начала, но понимать о чём там речь... Собственно, экспансия 1С остановилась в границах СНГ не потому, что с 1С что-то плохо - просто упёрлись в языковой барьер - а ведь изначально заложили неплохой механизм, на который в последствии забили - развивали только перевод интерфейса. Ну и ограничение в программировании русским и вторым английским естественно привело в современную лужу и вряд ли ребятки из самой 1С в нынешних реальностях в состоянии осознать всю глубину той лужи в которой они оказались… Ребят имея 20 летний опыт с 1С и перейдя с Фокс про и клипера - я ещё помню своё мнение о русском языке в программировании - но позже автоматизировав бизнес, и не в одном предприятии, собственно понял дальновидность принципа заложенного ещё в семёрку - пусть инструмент убог и коряв, но главное он позволяет общается с бизнесом на его языке и в его терминологии, просто брать и делать, а не сидеть и репу чесать над тем как назвать очередную переменную чтоб пацанчики знающие английский не громко ржали…
Да, действительно. 50000000 итерация через Выполнить() выполнилась в 2 раза быстрее чем напрямую кодом в 1с. Может кто то знает с чем такое поведения может бысть связанно?
@@Веселый1СА если запустить не из под конфигуратора, то результат не меняется. Как Вы считаете, без разницы? На самом деле был очень удивлён в разнице производительности :)
Конечно классная подача и Андрей молодец,что двинул oscript в массы, но есть подозрения что попадаем в вечные разборки Java vs .Net У меня на компе Windows Pro 10, openjdk version "11.0.6" 2020-01-15 LTS executor_j11.cmd - 13.662 сек oscript - 97.883 сек У меня правильная java и похеренный .Net? Помогите разобраться? Или экзекуторы уже оптимизировали? (Ой кажется экзекутеру поставил в 10 раз меньше итераций, и таки у экзекутера проблема со сборщиком мусора... )
что-то комментарий мой исчез... может из-за ссылки, которую я дал.... в общем, повторюсь... скачал последний Исполнитель, но он по прежнему работает значительно медленнее, чем OneScript, не говоря уже про Java, C# или Перфоленту... может у нас с вами код теста различается?
@@asoneas если Вы заметили, то объясню остальным... По ссылке под видео есть два файла, один для OneScript, в котором указано 50 000 000 циклов, а второй для Исполнителя, в котором указано только 5 000 000 циклов... это и вводит в заблуждение, кажется, что Исполнитель быстрее работает... но стоит только добавить нолик.... и всё становится на свои места...
@@asoneas дело же не в типизации, а в том, что Исполнитель это надстройка над Java... т.е. от скорости Java отнимается время работы самого Исполнителя... так же как интерпретатор Односкрипта это надстройка над Net...
@@Веселый1С На очень диком западе в секундах php7 - 22 python3 - 25 oscript - 97 executor_j11.cmd - 130 И Java, Kotlin(JVM) и Перфолента.Net меньше секунды
После просмотра: ну собственно совершенно предсказуемые результаты лично для меня. 1С скрипт первый потому что самый простой, платформа вторая потому что ядро уже неплохо вылизано (особенно исполнение кода), исполнитель последний потому что ява + слишком сырой. По синтаксису полностью согласен, бред полнейший, неудобно даже просто смотреть такой код, а не то что писать что то на нем, почему нельзя было оставить синтаксис 1С непонятно.
поддерживаю, интересно кто быстрее работает с памятью. Создание массива и очистка (удаление элементов в цикле). Ставлю на то что результаты точно такие же будут, 1С скрипт, потом платформа и сильно позади исполнитель
Если у исполнителя код закрыт - то это и есть его основная проблема, а не то, что он медленнее.
И да, было любопытно - лайк и подписка!)
Кто в 1с углубился того такими концовками не убедишь, он видел и пострашнее вещи ;)
Прикольно. Уже свеженько, с юмором, видно что заморочился 👍👍👍
@Андрей Овсянкин нееее, народ не внемлит сложному, надо проще с юмором )))). На самом деле сложные темы всегда собирают мало «лайков».
:) что-то годное с первых минут
Лайк за музыкальную паузу😁
Проверил сейчас в 1С предприятии этот кусок кода консолью кода, проверял на двух версиях: 8.3.24 и 8.3.17. Я ожидал, что более новая версия будет тормознутее, но нет. При исполнении на клиенте 8.3.24 показала результат 49 секунд, а 8.3.17 - 58.5 секунд. При выполнении на сервере вообще весело. 44 секунды и 58. То есть 1С оптимизировала свой язык программирования в 1С:Предприятие. Могу только поздравить и от всей души похвалить!
то есть в данном случае, если сравнивать односкрипт с предприятием, предприятие судя по всему будет быстрее)
Какая-то оптимизация в обратную сторону...
@@Веселый1С не понял) новая версия же быстрее
Как же быстрее, если на 8.3.24 было 49, а на 8.3.25 стало 58?
@@Веселый1С виноват, не 25, а 17. 25 даже в бету ещё не вышла))) опечатка
А я надеялся что 1с поглотит oscript и внедрит в себя )) но видимо для них изобретать чугунные велосипеды выгоднее чем поддерживать начинания сообщества ((
Тут только если infostart'y продаться, как Снегопат и Ванесса.
Претензии к 1С Executer конечно обоснованы, но будем точны 1С выбрала путь Java и этим все сказано. Почему она не сделала синтаксис 1С на JVM? Зачем нужно было переписывать синтаксис? Java c заданной типизацией может считает Эратосфена 1-2 сек если что.
Теперь Андрюхе точно в Фирму 1С "вход заказан"
Камера шатается... картинка как на волнах. А за обзор, зачет!
"Поскольку это один и тот же диалект 1С, то портирование выполняется копи-пастом", это было жестоко =)
охренев от концовки - отписался, чтобы подписаться
Гитару не хорошо держать у батареи и окна) За сравнение лайкос!
В конце чуть инфаркт не получил О_о
Однажды пытался оптимизировать в OneScript костыльный алгоритм попиксельной работы с графическими файлами (чтение, изменение и т.д.), пришла идея сравнить производительность с платформой, благо можно код копипастить. Тест, занявший в OS полминуты, в платформе я дожидался допивая чай..
Концовочка взбодрила :))
P.S. Подписан
Может быть это многоходовочка, чтобы платформе 1С было у кого выигрывать по скорости на параолимпиаде по программированию?
Нет всё встаёт на свои места JVM, 1С - 120 сек, Выполнятор 5.2 - 29 сек (Массив)
Питончик бы еще замерить, тоже скриптовый язык )
так а на с++ сколько? ;-) спасибо за обзор и каннибалов!
Ух, как хорошо то)
Убедил. Подписался))
Серьезно не знаешь, с чем эжто связано? С отладчиком. Отруби отладчик и будет также.
Елку пора бы уже разобрать
первое мая еще не скоро
@@Веселый1С ruclips.net/video/1yda0o81UtM/видео.html
у 1С свой менеджер памяти и поэтому скорость создания массива и заполнения выше.
да, исполнитель медленный... однако все три интерпретатора 1С, Исполнитель и 1Script это не про скорость вычислений... если нужна скорость, то надо компилятор, а не интерпретатор....
Провел испытания этого кода на Односкрипте и Перфоленте...
Односкрипт 113 секунд
Перфолента 39 секунд
Но если переписать пару строк кода, что бы вместо коллекции Массив использовался обычный "нативный" массив, то Перфолента сразу дает 0,7 секунды... т.е. в 160 раз быстрее, чем Односкрипт...
Н = 50000000;
Массив Мас[Н] тип Булево = Истина;
Мас[0]=Ложь;
Мас[1]=Ложь;
времяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
Для индекс = 2 По Н Цикл
Если Мас[индекс] Тогда
квадрат = Цел64(индекс) * индекс;
Если квадрат
это да, перфолента тут всех уделает в таком тесте, ну оно и понятно.. хотя ее уже сравнивать нужно с полноценно компилируемыми языками
@@alexeibelousov3279 я сравнивал этот тест с C# и Перфолента показала точно такое же время... +/- пару миллисекунд, иногда шарп быстрее иногда Перфолента, видимо зависит от того, что в момент запуска ОС делает...
@@alexeibelousov3279 а вот на Java 15 мне почему-то не удалось добиться высокой скорости, как у Никиты Грызлова получилось... но я Джаву не знаю толком... хочу спросить у Никиты как он её запускал, что бы высокая скорость была... а то она у меня на уровне Односкрипта работает... всего чуть-чуть быстрее...
@@alexeibelousov3279 что-то Ваши комментарии, которые Ютуб мне на почту присылает, здесь не отображаются... интересно, Вы их сами удаляете, или Ютуб отчего-то решил их удалять? Да, на "диком западе", как Вы выразились, php7 и python3 работают значительно быстрее, чем наши домашние Исполнитель и Односкрипт, но тут всё дело в языках, на которых написаны интерпретаторы... интерпретатор написанный на Си или ещё лучше на ассемблере значительно обгонит аналог написанный на языке высокого уровня... зато, усилия необходимые для написания интерпретатора на языке высокого уровня меньше, чем на Си... что бы своё развивалось, его надо поддерживать... помогите Андрею Овсянкину чем можете, и Односкрипт станет быстрее и лучше... а Исполнителю пусть фирма 1С поможет, у неё ресурсов много...
@@serj0peleng там кто то другой видимо писал, мой каммент один, вот висит первый в ветке.. я вродь ничего больше не писал.
пс: мне перфолента чуть более интересна чем односкрипт.
предлагаю написать парсер для csv согласно rfc tools.ietf.org/html/rfc4180 Там получается что надо проходить всю строку посимвольно - интересно насколько java будет отличаться рантайм. Я сравнивам жабу с сапом - сап медленнее в 100 раз :(
вот тут сорс код на жабе
mkyong.com/java/how-to-read-and-parse-csv-file-in-java/
Ворос к авторам - а можно в скрипте диалект поменять в сторону от 1С к примеру сделать его питон подобным? И вообще на будущее словари прикручивать чтоб на диалектах буржуйских можно было писать? С конвертером разумеется... А то сама 1С раскорячилась только на русский и английский - мультиязычный Тузик думаю порвал бы многих в том числе и поделки от 1С.
Сделать транслятор одного варианта языка в другой - задача не сложная, YoptaScript тому пример. Но под новый диалект надо доделывать IDE, а это уже может стать большой проблемой
@Андрей Овсянкин буковки ї или і это у меня от любви к дореформеному, а не к окраїне или ещё каким постсоветским суржекам...
По сути - в сам диалект хорошо бы питон подобный диалект прикрутить (просто можем так с удобным копипастом, а можем и так…) (захват пустующей ниши обучения в школах - правда тут ещё графикой озаботится надо - но проще обучать на русском) это раз - ну и два - Вас ждёт немецкий рынок - там уже прикоснулись к 1С и не плохо зашло. Зайдёт ещё лучше если специалисты смогут сами под себя приспосабливать инструмент, которым пользуются - немцам на немецком - небольшая конвертация и иной специалист из другой страны будет на своём пусть и на ломаном, для начала, но понимать о чём там речь...
Собственно, экспансия 1С остановилась в границах СНГ не потому, что с 1С что-то плохо - просто упёрлись в языковой барьер - а ведь изначально заложили неплохой механизм, на который в последствии забили - развивали только перевод интерфейса. Ну и ограничение в программировании русским и вторым английским естественно привело в современную лужу и вряд ли ребятки из самой 1С в нынешних реальностях в состоянии осознать всю глубину той лужи в которой они оказались…
Ребят имея 20 летний опыт с 1С и перейдя с Фокс про и клипера - я ещё помню своё мнение о русском языке в программировании - но позже автоматизировав бизнес, и не в одном предприятии, собственно понял дальновидность принципа заложенного ещё в семёрку - пусть инструмент убог и коряв, но главное он позволяет общается с бизнесом на его языке и в его терминологии, просто брать и делать, а не сидеть и репу чесать над тем как назвать очередную переменную чтоб пацанчики знающие английский не громко ржали…
Да, действительно. 50000000 итерация через Выполнить() выполнилась в 2 раза быстрее чем напрямую кодом в 1с. Может кто то знает с чем такое поведения может бысть связанно?
Подозреваю, что у выполнить отключается поддержка отладки, номеров строк и т.п.
@@Веселый1СА если запустить не из под конфигуратора, то результат не меняется. Как Вы считаете, без разницы?
На самом деле был очень удивлён в разнице производительности :)
Старые платформы быстрее в разы на подобных задачах, например 8.2.13.
А если писать в одну строку будет ещё быстрее.
А если обработку встроить в конфу, то скорость покажет сопоставимую с Выполнить().
Баг с внешними обработками довольно известный)
Конечно классная подача и Андрей молодец,что двинул oscript в массы, но есть подозрения что попадаем в вечные разборки Java vs .Net
У меня на компе Windows Pro 10, openjdk version "11.0.6" 2020-01-15 LTS
executor_j11.cmd - 13.662 сек
oscript - 97.883 сек
У меня правильная java и похеренный .Net? Помогите разобраться?
Или экзекуторы уже оптимизировали?
(Ой кажется экзекутеру поставил в 10 раз меньше итераций, и таки у экзекутера проблема со сборщиком мусора... )
что-то комментарий мой исчез... может из-за ссылки, которую я дал.... в общем, повторюсь... скачал последний Исполнитель, но он по прежнему работает значительно медленнее, чем OneScript, не говоря уже про Java, C# или Перфоленту... может у нас с вами код теста различается?
@@serj0peleng Все извиняюсь, был не прав, посыпаю голову пеплом... Забыл про еще один нолик ;)
@@asoneas если Вы заметили, то объясню остальным... По ссылке под видео есть два файла, один для OneScript, в котором указано 50 000 000 циклов, а второй для Исполнителя, в котором указано только 5 000 000 циклов... это и вводит в заблуждение, кажется, что Исполнитель быстрее работает... но стоит только добавить нолик.... и всё становится на свои места...
@@serj0peleng Что теперь у меня пропадает комментарии. А ведь они хотели сделать же статическую типизацию как в Java? И результат java - 14 сек.
@@asoneas дело же не в типизации, а в том, что Исполнитель это надстройка над Java... т.е. от скорости Java отнимается время работы самого Исполнителя... так же как интерпретатор Односкрипта это надстройка над Net...
дизлайки ставят разрабы из 1С:Исполнитель
Все трое?
@@kefmdksalw не знаю сколько их но явно это они)
Эх, зачем же гитару рядом с батареей ставить(
это была временная дислокация)
Ну тогда ладно)
ты забыл
КАЛАКОЛЬЧЕЕЕЕГГГГ !!!
Все хорошо, но нафига такой треш в конце вставлять, у меня уши в штаны вывалились.
Я нипонел. Так что быстрее, java или C#?
Исполнитель!
@@Веселый1С На очень диком западе в секундах
php7 - 22
python3 - 25
oscript - 97
executor_j11.cmd - 130
И
Java, Kotlin(JVM) и Перфолента.Net меньше секунды
До просмотра видео ставлю на 1с скрипт
После просмотра: ну собственно совершенно предсказуемые результаты лично для меня. 1С скрипт первый потому что самый простой, платформа вторая потому что ядро уже неплохо вылизано (особенно исполнение кода), исполнитель последний потому что ява + слишком сырой. По синтаксису полностью согласен, бред полнейший, неудобно даже просто смотреть такой код, а не то что писать что то на нем, почему нельзя было оставить синтаксис 1С непонятно.
А чо, проверил бы скорость инициализации массива бы еще для спортивного интереса раз пошла такая пьянка)
поддерживаю, интересно кто быстрее работает с памятью. Создание массива и очистка (удаление элементов в цикле). Ставлю на то что результаты точно такие же будут, 1С скрипт, потом платформа и сильно позади исполнитель
Может Исполнитель тут не при чем, а это Java машина тормозит
джава сама по себе быстрая. бсл лс и бсл парсер, лопятящие на джаве десятки тысяч файлов за приемлемое время, тому пример
Как выяснилось на Java даже построчное выполнение ~ 10 сек, а при оптимизации как у .Net меньше секунды.