#php #oop
#php #ооп
Вопрос:
Мой вопрос в том, что потребляет больше памяти:
- Передать объект в качестве аргумента в методе
- Передайте целое число ID в качестве аргумента, а затем создайте объект из этого идентификатора
Заранее большое вам спасибо.
Комментарии:
1. Является ли конечный результат одним и тем же объектом? Откуда
ID
берется?2. Если ваши объекты не имеют дело со многими мегабайтами данных, я бы назвал это преждевременной оптимизацией …
3. php.net/manual/en/language.oop5.references.php
4. Объект является экземпляром одного элемента строки в базе данных. У нас есть наш внутренний ORM.
Ответ №1:
Поскольку объекты в PHP всегда передаются по ссылке, и их создание из идентификатора может создать дубликат объекта, если он существует вне функции, я бы сказал, что метод 1 более эффективен с точки зрения памяти.
Ответ №2:
2 будет потреблять больше реальной памяти, потому что в дополнение к самому объекту вам нужно обращаться к базе данных (если вы не используете интеллектуальный ORM, такой как Doctrine 2, который сохраняет ссылку на уже извлеченные объекты, чтобы сохранить обращения к БД)
1 не будет потреблять никакой памяти вообще, кроме уже используемой объектом, потому что вы отправляете только ссылку на него (в PHP объекты передаются по ссылке по умолчанию)
Я бы выбрал 1 в любой день