Size: a a a

2020 January 28

SP

Sergey Protko in PHP
ну в конечном итоге он же рассказывал что делалось это все для того что бы улучшить эффективность работы с памятью (кэш мисы убирать). Для этого много чего делалось. По инструкциям в том числе (если опимизации с целью как-то улучшить предсказания переходов что бы конвеер не охуевал - это может чуть ускорить загрузку данных в кэш на перед)
источник

KN

Kirill Nesmeyanov in PHP
В том числе и увеличесние количества инструкций
источник

KN

Kirill Nesmeyanov in PHP
раньше были более обобщённые, из которых прыгали в разные места
источник

KN

Kirill Nesmeyanov in PHP
некоторые соптимизили и затюнили
источник

KN

Kirill Nesmeyanov in PHP
о!
источник

KN

Kirill Nesmeyanov in PHP
FAST_CALL же
источник

SP

Sergey Protko in PHP
ну специализации опкодов это вроде 7.2 но да, это в том числе надо что бы уменьшить количество проверок.
источник

KN

Kirill Nesmeyanov in PHP
я вспомнил даже что это за инструкция была)
источник

SP

Sergey Protko in PHP
можем еще вспомнить оптимизации GC в 7.3
источник

SP

Sergey Protko in PHP
которые никитка запилил
источник

KN

Kirill Nesmeyanov in PHP
надо кстати посмотреть
источник

AL

Alexander Lisachenko in PHP
Почитал тут ваш батл - что-то так себе со всех сторон ) кусок правды, а кусок от себятины прикручен ))
источник

AL

Alexander Lisachenko in PHP
Насчёт zval и списков - тип один HashMap. Сам zval объявлен как union - содержит в себе все типы данных, все что не скаляр - указателем лежит. В итоге размер не увеличится если в список что-либо добавить, но сломается совместимость на уровне структур. Обьекты, строки, массивы в виде указателей стали хранить хитро вместе с самими значениями (они лежат сразу рядом), используя structure-хаки и оффсеты
источник

AL

Alexander Lisachenko in PHP
Передача массивов параметров в типизированный вариадик медленее, потому что проверяется каждый переданный тип элемента, что имеет сложность O(N). Передача массива проверяется одним тайпчеком - это быстро.
источник

F

Fogr in PHP
Alexander Lisachenko
Передача массивов параметров в типизированный вариадик медленее, потому что проверяется каждый переданный тип элемента, что имеет сложность O(N). Передача массива проверяется одним тайпчеком - это быстро.
полностью согласен, меня смутило ничем не подтвержденное, но уверенное утверждение Константина, что если передать по ссылке, то будет быстро, поэтому решил проверить
источник

AL

Alexander Lisachenko in PHP
И да, передача по ссылке будет медленнее, тупо потому что надо один дополнительный поинтер разрезолвить до самого значения. Всегда. И да, тут возможны кеш-миссы на само значение и замедление скорости работы в целом.
источник

M

Miir in PHP
This proposed law would prevent people who haven't paid child support from getting a hunting permit
источник

AL

Alexander Lisachenko in PHP
Alexander Lisachenko
И да, передача по ссылке будет медленнее, тупо потому что надо один дополнительный поинтер разрезолвить до самого значения. Всегда. И да, тут возможны кеш-миссы на само значение и замедление скорости работы в целом.
Вот даже старая инфа актуальная: https://phpinternals.net/docs/zend_reference
источник

F

Fogr in PHP
Alexander Lisachenko
И да, передача по ссылке будет медленнее, тупо потому что надо один дополнительный поинтер разрезолвить до самого значения. Всегда. И да, тут возможны кеш-миссы на само значение и замедление скорости работы в целом.
по опкодам разницы нет с сылкой и без
источник

F

Fogr in PHP
может я что-то не так делаю?
источник