169 похожих чатов

Помогите разобраться. В интерпретаторах же есть этап компиляции? Просто слышал,

что есть runtime компиляция, но на стриме по пыхе услышал, что все проверки в рантайме можно будет ввнести в этап компиляции, что увеличит производительность. Это получается 2 этапа компиляции? Можете растолковать это? Или так сказать перед runtime-ом уже идет компиляция, а потом в runtime это запихивается

6 ответов

8 просмотров

Зависит что понимать под компиляцией. Есть варианты, при которых действительно можно сказать, что есть этап компиляции. Тем более в пхп.

Нет, этап компиляции один. Просто вместо "множественных" проверок "в режиме реального времени" будут проверки единожды на шаге преобразования пхп кода в опкоды.

В чистых интерпретаторах нет этапа компиляции, но массовых чистых интерпретаторов пожалуй уже и не осталось

Я думаю имелось ввиду не "компиляция" а "compile time". То есть ты во время парсинга имеешь достаточно информации я о бы чёт предположить о том как код будет работать но при этом не запуская его. Рантайм компиляция - есть JIT который на основании статистики может пересоюирать и оптимизировать инструкции. Например у тебя есть функция: function sum(int $a, int $b) { return $a + $b; } Ты можешь на основе статистики знать что в целом там всегда только Инты а значит можно скомпилить более специализированные инструкции и может даже не юзать zval (представь только что там не сумма двух чисел а скажем перемножение матриц) В то же время если у нас strict types включен то те же выводы и специализированные инструкции можно соенерить до выполнения кода в рантайме. А потому можно применять ahead of time оптимизации и не тратить ресурсы на сбор статистики

Есть этап трансляции.

который называется интерпретация ) трансляторы делятся на компиляторы и интерпретатоы плюс всякие их миксы )

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта