The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз языка программирования PHP 8.0, opennews (ok), 26-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


62. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Аноним (58), 26-Ноя-20, 20:03 
$ в именах переменных - это слегка непривычно, но в конечном счёте очень удобно.
Во-первых, снимает проблему насчёт того, окажется твой $xor ($throw, $define, нужное вписать) ключевым словом или нет.
Во-вторых, есть такой концепт, как обращение к методу или свойству по динамическому имени. $object->$namedProperty. Позволяет не городить map'ы.
Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

67. "Релиз языка программирования PHP 8.0"  +1 +/
Сообщение от Аноним (58), 26-Ноя-20, 20:17 
А реальная причина в том, что парсеру так проще, он получается эффективнее. Для не-компилируемого языка это тоже немаловажно. В чём допустим проблема, что у вротпресса и симфоней от JIT толку нет? Они 100500 файлов кода затаскивают дольше, чем этот код выполняют, любители "классики" и "разбить на 100500 классов по 1 методу в каждом" игрались.
Ответить | Правка | Наверх | Cообщить модератору

155. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Аноним (155), 27-Ноя-20, 04:25 
Бред, не имеющий ничего общего с реальностью. Симфони компилирует ди-контейнер + опкеш умеет подгружать небольшие файлы + есть прелоад
Ответить | Правка | Наверх | Cообщить модератору

205. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Аноним (58), 27-Ноя-20, 10:43 
1. Для загрузки каждого класса срабатывают загрузчики классов самого скрипта. 100500 раз на каждый мелкий класс. Это ещё до опкеша не дойдя.
2. Preload делается только вручную. Ну и preload не панацея, см. далее.
3. Там проблема не только в 100500 файлах, но и 100500 классах / объектах. Каждый надо инициализировать. Как внутри Zend, так и потом при вызове конструктора. С первым preload вообще может навредить, если мы загружаем потенциальное "всё что может понадобиться". Инициализация "всего" в Zend будет на каждый запуск, даже если это наше всё не нужно.
4. С опкешем казалось бы всё хорошо, но есть два "но".
- 4a. По умолчанию опкеш проверяет отсутствие изменений файлов регулярно. Это fstat(), далеко не самый лёгкий вызов. Чтобы он этого не делал, надо выкручивать руками, и не всегда пригодно. Особенно если сама аппликуха может перестраивать свой собственный кеш в виде .php-файлов.
- 4b. Даже загрузка из опкеша с выкрученным в 0 проверяльщиком также приводит к инициализации внутренних структур Zend для каждого из загружаемых файлов, классов и т.п. Эти накладные расходы при наличии 100500 классов очень велики.

Если не растекаться мыслью по древу - смотрите на эффект от JIT. Он очень показателен. Как уже писал - в мега-декомпозитах накладные расходы превышают по весу само приложение, и это сразу видно.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру