03 | Память в PHP: как работают zval, хэш‑таблицы и GC
MediaTen – digital-агентство | Приводим в порядок код и мысли
Разбор нюансов работы с памятью в PHP (PHP 8.2): zval, хэш‑таблицы, COW, массивы vs объекты, когда происходят копирования и как экономить оперативную память. Практические советы по передаче данных и перебору массивов. Таймкоды: 00:00:05 — Введение и обратная связь 00:00:47 — Тема урока 00:01:00 — Дисклеймер (PHP 8.2) 00:01:57 — Производительность PHP (синтетические тесты) 00:02:53 — Производительность на реальных приложениях 00:03:50 — Память и хэш‑таблицы 00:03:59 — Функция debug_zval 00:05:20 — Хэш‑таблицы в PHP 00:07:31 — Механизм разрешения коллизий 00:08:52 — Ключи в хэш‑таблицах 00:09:46 — Примеры с целочисленными ключами 00:10:41 — Примеры со строковыми ключами 00:11:09 — Смешанные ключи массива 00:12:09 — Влияние строковых ключей на потребление памяти 00:13:03 — Сравнение массивов и объектов 00:14:17 — Эксперимент с заполнением массива 00:17:13 — Влияние использования объектов на производительность 00:18:56 — Передача массива функции (COW и копирование при записи) 00:21:27 — Передача по ссылке 00:22:19 — Модификация значений в цикле 00:23:18 — Различия между for и foreach 00:24:14 — Внутренние указатели массива 00:25:53 — Подводные камни foreach 00:26:24 — Ссылки на дополнительные ресурсы 00:27:45 — Вопросы и ответы (память строк vs int, ссылки) 00:32:49 — Создание объектов и массивов (время и память) 00:34:32 — Передача массивов в функции (копирование при необходимости) 00:35:51 — Перепередача и изменение объекта 00:36:10 — Работа над ошибками (проверки и...