The OpenNET Project / Index page

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



"Релиз языка программирования PHP 8.0"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Релиз языка программирования PHP 8.0" +/
Сообщение от Аноним (205), 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ообщить модератору

Оглавление
Релиз языка программирования PHP 8.0, opennews, 26-Ноя-20, 18:15  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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