TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5835 2.74K
📊 Ленивые вычисления в PHP: эффективная работа с большими данными

Когда вам нужно обработать гигантские файлы, например, CSV размером 2 ГБ, загрузка данных в память может вызвать ошибку из-за исчерпания лимита памяти. Как этого избежать? Ответ — ленивые вычисления.

Ленивые вычисления позволяют обрабатывать данные по мере их необходимости, а не загружать всё в память сразу. В PHP для этого можно использовать генераторы и Iterator API.

Что такое ленивые вычисления?
Вместо того, чтобы хранить все данные в памяти, генераторы и Iterator API загружают данные по одному элементу за раз. Это позволяет работать с большими объёмами данных без излишней нагрузки на память.

Когда использовать?

Генераторы идеальны для простого стриминга данных, когда нужно поочередно обрабатывать элементы (например, строки в CSV файле).

Iterator API подходит для более сложных сценариев, когда необходимо сохранить состояние или использовать кастомные ключи.

Преимущества:

🔸 Меньше памяти: Генераторы могут обрабатывать миллионы строк, используя всего несколько килобайт памяти.

🔸 Производительность: Время выполнения остаётся практически неизменным, но память используется гораздо эффективнее.

Применение в реальной жизни
Например, при работе с автомобильными данными через API, использование генераторов позволило сократить потребление памяти с 2 ГБ до всего 10 МБ.

👉 Полная статья с примерами и бенчмарками

Библиотека пхпшника
  • 👍 9
  • 🥱 3
  • ❤ 2
More from @phpproglib
  1. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
  2. Sep 25, 2026🌞 PHP умеет искать в массиве без foreach В PHP 8.4 появились array_find(), array_find_key…
  3. Sep 24, 2026👍 5 способов встроить AI в Laravel Laravel AI SDK позволяет добавлять AI-функции прямо в…
  4. Sep 23, 2026🛠 Symfony 8.2 научился автоматически генерировать JSON Schema для конфигурации приложения…
  5. Sep 23, 2026🚀 Свежий релиз Laravel 13 с набором улучшений и исправлений ✅ добавлена поддержка valkey:…
  6. Sep 21, 2026⚡️ PHP 8.6 выйдет 19 ноября 2026 года. Сейчас версия находится в beta. Самые заметные изме…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →