sorry_i_noob
@sorry_i_noob

Должен ли я при разработке своего сайта на PHP стараться использовать меньше наименований переменных, переопределяя вместо этого старые?

Здравствуйте. Собственно, сабж.
Если я пишу длинную функцию. И внутри нее есть некоторые промежуточные значения, которые нужно сохранить в переменные. Мне лучше сделать одну переменную, например, $tmp и постоянно переопределять ее? Записывая в нее разные промежуточные значения. Или можно много разных переменных (чтобы удобнее было читать код)? С точки зрения оптимизации сильно ли критично, что у меня много разных переменных?
  • Вопрос задан
  • 998 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
PHP так устроен, что юзер запросил выполнение скрипта, PHP быстренько выполнил скрипт, вернул результат и процесс завершил работу, все переменные, объявленные в этом скрипте, умирают вместе с процессом. Ни о каких утечках памяти там беспокоиться не следует.

Кроме очень редких случаев, когда к примеру нужно получить от юзера большой файл и как-то его обработать, загрузив предварительно в память, но там оптимизация на именах переменных будет незначительной, скорее всего просто будете обрабатывать построчно, вызывая для каждой строки функцию (локальные переменные внутри функции все умирают после выхода из функции, а для объектов вызывается деструктор) и не храня в памяти всё содержимое.

А с точки зрения читаемости кода, лучше не пихать всё в один блок, а для каждого шага сделать отдельную функцию с понятными именами. Соответственно, локальные переменные внутри функции будут занимать память только в момент непосредственного исполнения этой функции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@m0nym
1) На сегодня стоимость разработки существенно выше стоимости железа. Вы завышаете стоимость разработки.
2) Вы не там оптимизируете. Самые большие тормоза находятся вне вашей программы - СУБД, файлы и сеть, а вовсе не внутренние переменные.
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега PHP
♬♬
С точки зрения занимаемой памяти, лучше уменьшить число используемых переменных, т.к. они занимают место до конца выполнения функции. Можете делать им unset(), когда переменная более не нужна, чтобы «освободить память». Но всё это — экономия на спичках, скорее всего.
Ответ написан
@kuftachev
"Если я пишу длинную функцию."

Вот уже ответ на Ваш вопрос! Не пишите длинную функцию!!!

Функция должны выполнять одно осмысленное действие, если она не помещается на экран и это не switch на 30 вариантов, то скорее всего ее нужно разделить.

На счёт переменных, вопрос в том, что там находится. Если там 10 чисел, то это вообще выделяется на стеке и даже сборщика мусора не будет. Второй вариант, если там 10 массивов, каждый из которых по 10 Мб, то тогда стоит задуматься, что и как Вы делаете.

Хотя, я сейчас не дам 100%, но мне почему-то кажется, что сборка мусора не выполняется посередине функции, могу ошибаться.

В общем, то, что Вы задумываетесь о памяти - это правильно, тем более, что одно дело, когда это один запрос на 10 лишних Мб, а другое дело, когда этих запросов 100 одновременно... И если это простой хостинг, то у них к Вам могут возникнуть вопросы.
Ответ написан
Комментировать
@Yan-s
Должен ли я при разработке своего сайта на PHP стараться использовать меньше наименований переменных, переопределяя вместо этого старые?

Нет. Совершенно не должны.

Имеет смысл следить за объемом данных в переменных и то без фанатизма. Оптимизации выполняются при необходимости.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы