Заметки из Зазеркалья

12.03.2021

1С:Исполнитель(X): вариант 1С:Исполнителя, работающий без установленной Java

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Мы писали ранее, что для работы 1С:Исполнителя требуется установленная Java. Для некоторых пользователей это оказалось неудобным, поэтому мы сделаем новый вариант поставки 1С:Исполнителя, в котором устраним это требование. Мы планируем выпустить вариант 1С:Исполнителя, который будет запускаться как нативное приложение для конкретной ОС и не потребует установки Java.

 

Каждый вариант получит свое название:

  • 1С:Исполнитель(U) – вариант продукта, требующий предустановленной Java (от слова Universal - универсальный).

  • 1С:Исполнитель(X) – вариант, поставляемый как исполняемый (eXecutable) файл для конкретной ОС.
Поставки 1С:Исполнителя(X) будут работать на Windows и Linux (поддержку macOS мы планируем в одном из следующих релизов). 1С:Исполнитель(X) в большинстве случаев идентичен по функциональности 1С:Исполнителю(U).

1С:Исполнитель(Х) не приходит на смену 1С:Исполнителю(U), требующему установки Java; оба варианта планируется развивать параллельно. 1С:Исполнитель(Х) можно использовать в тех случаях, когда установка Java нежелательна и/или критично время запуска скриптов.

Сейчас мы оптимизируем 1С:Исполнитель(Х) не для сценариев выполнения объемных вычислений и большого количества операций, а именно обеспечения быстрой скорости запуска. По нашей оценке основной сценарий использования продукта - это короткие действия, которые нужно запускать как можно быстрее.

Особенности 1С:Исполнителя(Х):

  1. Увеличение производительности. Одной из задач было ускорить первоначальную инициализацию продукта и увеличить скорость запуска скриптов. Чтобы сравнить производительность 1С:Исполнителя(U) и 1С:Исполнителя(Х)  мы специально использовали не самое новое оборудование (процессор Intel Core i5-3550, диск SSD Samsung evo850, ОС Windows 10). Результаты для 1С:Исполнителя(Х):

    1. Время запуска ощутимо сократилось.
    2. Для простого скрипта (выводящего поданные аргументы в консоль) время работы сократилось в 10 раз (за счет того, что раньше большую часть работы простых скриптов занимала инициализация рантайма Java).
    3. Для скрипта на 1000 строк, проводящего большое количество вычислений с использованием чтения и записи JSON, время работы сократилось в 6,5 раз.Стоит отметить, что при этом 1С:Исполнитель(U) показывает лучшую пиковую производительность по сравнению с 1С:Исполнителем(Х).

  2. Как мы уже говорили, 1С:Исполнитель(Х) не требует установленной JRE или JDK.

  3. В силу особенностей архитектуры 1С:Исполнителя(Х) динамическая загрузка библиотек в нем не поддерживается. Так, некоторые специфические объекты в 1С:Исполнитель(Х) работать не будут (объекты, которым требовались сторонние библиотеки, устанавливаемые пользователем самостоятельно).

    Интерфейс командной строки запуска 1С:Исполнителя(Х) под Windows и Linux не изменился по сравнению с 1С:Исполнителем(U) и привычные вызовы будут работать.

Для реализации 1С:Исполнителя(Х) мы использовали проект GraalVM. GraalVM — это виртуальная машина Java и JDK, умеющая компилировать программы, написанные на Java, в нативные приложения.

Подробнее про устройство 1С:Исполнителя(Х) рассказывалось на конференции 1C:SysDevCon в выступлении «Как мы интерпретатор, написанный на Java, заставили работать без Java, и зачем?». Запись доклада доступна для всех зарегистрированных пользователей портала developer.1c.ru.

Теги: 1С:Исполнитель 

Рассказать друзьям: