Конференции Олега Бунина (Онтико) corporate blog
High performance
Website development
PHP
Zend Framework
Comments 20
+6
Офигенная статья, респект автору!
Очень интересно читать, хоть я и не php developer.
0
Это действительно круто. Редко где можно увидеть чтобы новая версия была в 2 раза быстрее старой без каких-либо ограничений.
-9
Есть похожий лайфхак с базами данных. Вначале создаёшь голые таблички. Потом когда спустя какое то время (в зависимости от нагрузок), всё начинает тормозить — вешаешь индексы, и вот у тебя с лёгкой руки уже ускорение даже не в разы, а на порядок!
+2
Спасибо за интересную статью. Кстати, WordPress, например, с PHP 7 в 2 раза быстрее прямо из коробки шурует.

image
+2

Спасибо, очень классно. Мне, как мейнтейнеру скриптового движка, будет над чем подумать.

0
Мало, что понял, так как все эти оптимизации далеки от меня, но читать было бы интересно.
Если бы php причесали бы, улучшили стандартную библиотеку (убрали текущий цирк) и поубивали старый синтаксис, то была бы уже радость от использования языка, но такой поворот наверно превратил бы php в python 3.
+3

Python… Только с константами, объектной моделью, менеджером зависимостей, трейтами, статическими полями, теперь уже и контролем над типами...

0

Я имел ввиду, что переход на питон 3 для многих был болезненным, а не в том, что пхп станет выглядить как питон.

0
Скажите — а при работе php (в качестве модуля apache или php-fpm+nginx) парсинг php-файла происходит при каждом запросе клиента или есть какое-никакое кеширование байткода?
+1
Он (Opcache) встроен в стандартную поставку? А если я поменял файл и нажал обновил страничку — ка PHP об этом догадывается? Он проверяет дату изменения файла при каждом запросе?
+2
Opcache в стандартной поставке с PHP 5.5, до этого был APC. При большом желании его можно выключить или накриворучить настройками.
Стандартно, да, следит на временем изменения файла, если этот файл закеширован. Из кеша можно выпилиться засчет переполнения максимального отведенного объема памяти или количества файлов.
На проде устанавливают
opcache.validate_timestamps=0
и при деплое сбрасывают кеш, искренне считая, что тут код не должен меняться и нечего тратить время на проверки всякие.
+5
Довольно забавно видеть эту эволюцию. Как сначала не типизированность показываться как супер пупер киллер фича во множество языках. а через некоторое время — ой, нам нужны типы для читаемости, ой нам нужны типы для производительности
+2

Ну так и мир вокруг менялся все эти годы и проекты росли.

0
Так результат всегда хуже, когда у нас анонимные типы. По всем параметрам.
Я сейчас честно пытаюсь придумать вариант, где «без типовость» выигрывает… но не получается.
+2
Такая информация из первых рук бесценна. Дмитрий выступал с похожим докладом в 2017 на кодефесте, была возможность послушать в живую. огонь.
Кому интересны еще подробности, на хабре была статья хардкорная статья про внутрянку массивов в семерке: habr.com/ru/company/mailru/blog/308240
+1

Было бы интересно почитать об встроенном сервере, который появился в 5.4
Хотелось бы узнать будет ли расти стандартная библиотека SPL, например хотелось бы увидеть там класс для работы с сокетами, по типу SPLFileObject
Какие расширение планируются добавиться в common
Какие расширения будут выпилены, есть куча расширении для xml

Only those users with full accounts are able to leave comments.  , please.