Задать вопрос
@elmoreden

Есть ли разница между памятью в PHP и C#?

Когда изучал C# там было отдельно уделено время стеку, куче, как они работают. Сейчас иду на джуна PHP устраиваться и вот интересно: в PHP тоже логика работы памяти такая же? То есть переменные помещаются в стек, классы в кучу и т.д. или там как-то по-другому?
  • Вопрос задан
  • 363 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 3
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
РНР работает как консольная утилита. Запустился, поработал долю секунды, завершился.
Поэтому вопросы управления памятью в 99% случаев РНР разработчиков не волнуют. Как и её очистка
Чисто технически подробности управления памятью также полностью скрыты от разработчика.
Всё что надо знать о работе РНР с памятью - "РНР работает с памятью за тебя"
Так что в целом, единственное что вас должно интересовать - это не работать с большими объёмами данных в скрипте. Но это и так очевидная рекомендация.

Если хочется прям вдаваться в детали (хотя совершенно непонятно, зачем это джуну), то PHP insernals Memory management
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Существенная . Насчет памяти в PHP https://habr.com/ru/company/otus/blog/582442/
И что касается исполнения. NET запускается как процесс выполняет что то на старте, возможно создает пул соединений, заполняет буфера, по ходу работы оптимизирует код в рантайме.

PHP отработал и забыл, то есть туже работы выполняют при каждом вызове скрипта. В какой то мере это и лучше, память не течет и все сбрасывается при каждом запросе.
Ответ написан
AgentSmith72
@AgentSmith72
JS - это моё хобби
Адреса памяти бесполезны в PHP-скриптах, поскольку интерпретатор обрабатывает всю внутреннюю переменную.

Работа с памятью: "Разделяемая память" но об этом джуна точно не спросят.

Работа с очередью
Работа со структурами данных итераторов

Для повышения уровня понимания, как эта самая внутренняя переменная создаётся: JIT в PHP 8

В целом, нужно отслеживать сколько памяти потребляют данные, выгруженные из базы данных. Один из способов контроля памяти генераторы в php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы