Имя: Пароль:
1C
 
Платформа кеширует байт-код или машинный код?
0 ДНН
 
06.12.20
17:44
Например, обратились к документу, модуль менеджера документа скомпилировался в одинэсовский байт-код, потом в машинный код. В кеше сохраняется байт-код или сразу машинный код?
Или компиляции в машинный код, как таковой нет, а байт-код всегда выполняется построчно?
1 ДенисЧ
 
06.12.20
18:10
... и тут вылезает отец Вовочки с вопросом "не один ли ... ?"
2 NorthWind
 
06.12.20
18:15
(0) Там свой байт-код, который интерпретируется и выполняется 1С. https://habr.com/ru/post/489392/
Никакого машинного кода в таких системах нет, это не компилятор С++.
3 H A D G E H O G s
 
06.12.20
18:16
4 H A D G E H O G s
 
06.12.20
18:18
(3) Ищем в предприятии, после выполнения кода, епстественно.

ArtMoney, великая штука, так то.
5 ДНН
 
06.12.20
18:33
(4) Объяснил бы хоть, какие из этого следуют выводы. Для тех кто в танке
6 ДНН
 
06.12.20
18:35
(2) Процессор же не может выполнить байт-код 1С, значит сама 1С должна переводить байт-код в машинный код. Так вот если второй раз обратиться к модулю менеджера, платформа из кеша возьмет байт-код или машинный код (она же уже переводила из байт-кода в машинный)
7 Фрэнки
 
06.12.20
18:41
не мучайся. Байт-код там. Где-то даже статьи обширные и подробные попадались, как это все устроено, на какой быстродействие можно рассчитывать, с какой оптимизацией и т.п.
8 Кирпич
 
06.12.20
18:45
(6) 1C не нужен процессор. Она сама всё выполняет. Можешь даже проверить. Выключи комп, вытащи процессор и включи комп. 1С загрузится. Правда только если 1с установлена в биосе.
9 ДедМорроз
 
06.12.20
18:45
Виртуальная машина 1с обрабатывает свой байт код на уровне машины.
Машинного кода,как такового нет,только код самой виртуальной машины.
Код кешируется на уровне скомпилированных модулей,то есть из Кеша достается байт код модулей и грузится в машину,после чего выполняется.
Код модулей объектов,кроме того,компилляется в контексте объекта,то есть вызываются команды после всех процедур причем каждый заход на сервер и для каждого объекта.
10 Ненавижу 1С
 
гуру
06.12.20
18:51
(9) вот это вот разверни подробнее: "Код модулей объектов,кроме того,компилляется в контексте объекта,то есть вызываются команды после всех процедур причем каждый заход на сервер и для каждого объекта."
11 ДНН
 
06.12.20
18:56
Если верить ссылки из (2), то и Java и C# тоже используют стековую машину. Но они кешируют машинный код. Почему 1С так не может?
12 Йохохо
 
06.12.20
18:58
(11) не машинный, а исполняющей машины (ява машины). а андроид сейчас вообще в двух машинах исполняется
13 jbond
 
06.12.20
18:59
Интерпретатор 1С интепретирует не байт код, а пи код.
14 ДНН
 
06.12.20
19:01
(12) https://metanit.com/sharp/tutorial/1.1.php
Тут говорят, что C# кеширует машинный код приложения
15 ДНН
 
06.12.20
19:03
(12) ... Далее при запуске на выполнение подобного приложения происходит JIT-компиляция (Just-In-Time) в машинный код, который затем выполняется....При том уже скомпилированная часть приложения сохраняется до завершения работы программы. В итоге это повышает производительность.
16 Ненавижу 1С
 
гуру
06.12.20
19:03
(11) потому что 1С это нафиг не упало
Java и C# всё-таки языки общего назначения
17 Йохохо
 
06.12.20
19:07
(15) что такое кеширование? кеширование плана запроса, скомпилированной версии модуля и статического кода это всё разные вещи
18 Кирпич
 
06.12.20
19:22
(15) Можно и так сделать. Только, после перехода на jit, лет пять будут глюки, а производительности так и не прибавится.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.