FAQ на PHPCLUB (Оптимизация программ на пхп)

Slastik

Новичок
FAQ на PHPCLUB (Оптимизация программ на пхп)

В Вашем FAQе http://phpfaq.ru/links
есть такая строчка про сайт php.spb.ru и статью Дмитрия Бородина "Оптимизация программ на PHP"

... а частично была изначально неверна (Оптимизация программ на PHP).
хотелось бы узнать почему информация изначально неверна?
неправильно написан скрипт который анализирует время выполнения?
или какие то другие причины?

спасибо
 

Фанат

oncle terrible
Команда форума
В этой статье на простых и очевидных примерах рассказано о некоторых способах оптимизировать любую (готовую) программу, не меняя ни одного алгоритма.
И насколько тебе удалось ускорить свои программы, пользуясь теми рекомендациями?
 

Slastik

Новичок
Во общем то проблема не в том чтобы ускорить какую то готовую программу, а в том что бы выработать более правильный стиль программирования, конечно прирост скорости не очень ощутим, но возможно при увеличении скрипта, или скажем в ситуациях с большой нагрузкой это все таки добавит некоторое ускорение.
Конечно переделывать готовые проекты может и не разумно
но писать правильно новые мне кажется вполне разумно.

Я запускал скрипты Дмитрия Бородина на пхп 5 получил примерно те же результаты что и него.

Или это ускорение настолько мизерно что никогда и никак не скажется?
 

Фанат

oncle terrible
Команда форума
выработать более правильный стиль программирования
стиль программирования - это не только быстродействие любой ценой.
Если для тебя главное - это микросекунды, то пиши на ассемблере.
Или это ускорение настолько мизерно что никогда и никак не скажется?
Ну зачем ты меня-то спрашиваешь?
Возьми, померь самостоятельно.
 

Slastik

Новичок
стиль программирования - это не только быстродействие любой ценой.
бесспорно, читабельность кода важнее чем микросекунды которые мы может никогда и не почуствуем
просто мне кажется что

$var="optimizacuya".$var1."PHP koda"

не менее читабельно чем

$var="optimizacuya $var1 PHP koda"

хотя может я заблуждаюсь, просто привык так писать.

Ну зачем ты меня-то спрашиваешь?
Возьми, померь самостоятельно.
моих знаний к сожалению не хватает для составления грамотного теста.
 

Фанат

oncle terrible
Команда форума
а ты сделай неграмотный.
Хватит уже слепо верить авторитетам.
Я считаю, что Бородин ошибается.
Точно так же могу заблуждаться и я.
составь своё собственное мнение
 

bgm

 
моих знаний к сожалению не хватает для составления грамотного теста.
А что, замерить время выполнения двух блоков команд и передать их в браузер - это требует особых знаний? Да и информации о элементарных тестах на производительности в сети предостаточно.
 

Фанат

oncle terrible
Команда форума
bgm
скорость выполнения обсуждаемых блоков на порядки превышает допустимую погрешность.
 

Slastik

Новичок
Автор оригинала: Фанат
а ты сделай неграмотный.
Хватит уже слепо верить авторитетам.
Я считаю, что Бородин ошибается.
Точно так же могу заблуждаться и я.
составь своё собственное мнение
То есть ты считаеш что приведенные там результаты именно неверны?

Без проблем :) если это только твое мнение.

но на сайте фака есть такая строчка (http://phpfaq.ru/about.php )

основной упор делается на достоверность и актуальность информации
а еще с
http://phpfaq.ru/links

... а частично была изначально неверна (Оптимизация программ на PHP).
следовательно я подумал что эта информация достоверно неверна, например из за ошибки в его скрипте.
или по какой то другой обьективной причине.

если же это
Хватит уже слепо верить авторитетам.
Я считаю, что Бородин ошибается.
Точно так же могу заблуждаться и я.
то есть просто твое мнение авторитетное но все таки субьективное , то к чему тогда фраза про достоверность информации.

или ты не имееш отношение к этой статье на ПХПФАК.ру
?

А что, замерить время выполнения двух блоков команд и передать их в браузер - это требует особых знаний?
не требует, но имхо не уверен что это будет грамотный тест

Да и информации о элементарных тестах на производительности в сети предостаточно.
тоже верно, но меня интересует конкретный тест Бородина
 

Фанат

oncle terrible
Команда форума
То есть ты считаеш что приведенные там результаты именно неверны?
а считаю что неверна процитированная мной фраза.
Что лишает смысла всю статью.
Без проблем если это только твое мнение.
А я и не говорил, что это твоё.
Я всего лишь предлагал тебе подумать своей головой. Было время - и я новичков тыкал в этот труд. А потом поумнел.
следовательно я подумал что эта информация достоверно неверна, например из за ошибки в его скрипте.
И это тоже.
Но эта неверность НЕ ИМЕЕТ ЗНАЧЕНИЯ.
Однако, как я уже убедился (как раз на примере оптимизации) у некоторых напрочь отсутствует система мер.
И они удавятся за копейку на фоне миллионных операций. Ты - яркий пример.
Да, если операция, исполняющаяся десятитысячную дол. секунды, замеряна неправильно, и иссполняется она не 0,0001, а 0,0002 - то это КАРДИНАЛЬНО меняет дело. СТО ПРОЦЕНТОВ РАЗНИЦЫ!!! Магия чисел тебя убеждает.
А их абсолютная величина для тебя - пустой звук.
Ну бывает. Не хватает у человека каких-то извилин в глове. Ничего страшного. И так люди живут.
то есть просто твое мнение авторитетное но все таки субьективное , то к чему тогда фраза про достоверность информации.
Считай моё мнение субъективным. Поскольку выведено на основе УМОЗАКЛЮЧЕНИЙ. Категории, тебе совершенно недоступной.
ты понимаешь, когда тебе показывают ПРОЦЕНТ.
"три копейки больше одной копейки в ТРИ РАЗА!" 300%! Это ты понимаешь.
И если у нас одна сделака на тыщу рублей три копейки, то это гораздо круче, чем тыща рублей одна копейка.
или ты не имееш отношение к этой статье на ПХПФАК.ру
при чём здесь пхпфак ру? При чём здесь "говоришь"? Я пытаюсь тебя заставить ДУМАТЬ. а ты можешь только ПРОЧИТАТЬ.
 

sakon

П..и.н..ок
>или ты не имееш отношение к этой статье на ПХПФАК.ру
Фанат скромный, поэтому не скажет... Хотя ты даже не представляешь какое он имеет к FAQу отношение. :)
 

Slastik

Новичок
а считаю что неверна процитированная мной фраза.
Что лишает смысла всю статью.
Не понял :(
Обьясни пожалуйста что ты имееш ввиду?

И они удавятся за копейку на фоне миллионных операций. Ты - яркий пример.
Да, если операция, исполняющаяся десятитысячную дол. секунды, замеряна неправильно, и иссполняется она не 0,0001, а 0,0002 - то это КАРДИНАЛЬНО меняет дело.
Да ладно тебе, где я такое написал?

но ведь 1000 и 3 копейки лучше чем 1000 и 1
копейка как известно рубль бережет.
тем более что мы при этом НЕ ТЕРЯЕМ НИЧЕГО (так ли ?),

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

во общем то со всей статьи Бородина меня интересует больше всего двойные кавычки (тот пример что я привел)
так как это очень часто используемая ситуация.

Соотвественно я ожидал услышать что то из этого:

1.Да, статья Бородина верная, и лучше использовать конкатенацию (пример с кавычками), тем более что читабельность при этом не хуже.

2. Нет статья неверная лучше пихать переменную в кавычки, так быстрее

3. Статья верная но читабельгность хуже поэтому конкатенацию не используем.

4. Статья неверная и вообще нельзя точно сказать что быстрее, поэтому юзай что хочеш на свой суд, главное читабельность

5. Статья верная но прирост настолько мал, что это вообще не имеет никакого значения, ни в какой ситуации.

Понимаеш, я себе прочитал статью (Бородина), и стал использовать конкатенацию, а потом смотрю на авторитетном для меня ресурсе (ПХПФАК), заявление что информация неверная,а так как ФАк опирается на достоверные факты, то я и решил узнать у создателей фака, почему она неверна и что верно.

(еще пару разочков перечитаю посты Фаната, может и смогу составит умозаключение :))
 

Фанат

oncle terrible
Команда форума
Обьясни пожалуйста что ты имееш ввиду?
то, что я написал в первом ответе.
Пояснить не могу.
могу только повторить.
В этой статье на простых и очевидных примерах рассказано о некоторых способах оптимизировать любую (готовую) программу, не меняя ни одного алгоритма.
Эффект от оптимизации методами, изложенными в статье, в 99% случаев заметить невооружённым глазом будет невозможно.
Да ладно тебе, где я такое написал?
Ты не принял мои доводы - значит, автоматически считается, что ты соглаен с написаным в статье.
А там как раз и выдаются мизерные цифры на искусственных тестах за реальный прирост в реальных скриптах.
но ведь 1000 и 3 копейки лучше чем 1000 и 1
копейка как известно рубль бережет.
тем более что мы при этом НЕ ТЕРЯЕМ НИЧЕГО (так ли ?),
Нет, не лучше. Равно.
Это с математической точки зрения.
А с точки зрения оптимизации - 1000 и 1 хуже, и стократ.
поскольку отвлекает программиста от РЕАЛЬНОЙ оптимизации.
На форум еженедельно приходят люди, страждущие сделать свои скрипты реактивными заменой двойных кавычек на одинарные.
НЕ ПОНИМАЮЩИЕ при этом, что один SQL запрос у них bсполняется В ТЫСЯЧИ раз медленнее, чем все строки в кавычках вместе взятые.
поскольку вам доступно только понятие "заменить кавычку ту на эту" и недоступна простая операция "померять разные участки скрипта, и оптимизировать ТО, ЧТО ТОРМОЗИТ. А не то, что ближе лежит", то эта статья приносит только вред.
во общем то со всей статьи Бородина меня интересует больше всего двойные кавычки (тот пример что я привел)
так как это очень часто используемая ситуация.
Вот-вот.
То, о чём я говорил.
Я прекрасно понимаю.
Горизонт у всех разный.
и подняться выше уровня своего невозможно.
Поэтому я не требую от тебя понять.
Я всего лишь предлагнаю тебе поверить, что

ВШИВЫЕ ДОЛИ МИЛЛИСЕКУНД, ЭКОНОМЯЩИЕСЯ НА КАВЫЧКАХ НЕ ИГРАЮТ НИКАКОЙ РОЛИ!!! ВООБЩЕ!!!!

И дело не в том, что уже давно разница между кавычками стёрта. Я прекрасно знаю, что тебе напишет какой-нибудь, такой же, как ты, профессор кислых щей об этом, и ты уцепишься за этот факт, как за единственный, доступный твоему пониманию. И будешь писать в двойных кавычках не потому, что удельный вес на обработку кавычке - это ничто в общем времени исполнения скрипта, а потому, что скорость равна.

поэтому я и пытаюсь вбить тебя правильное понимание проблемы.
Но это, видимо, бесполезно. У вас действительно отсутствует часть мозга. да, три копейки - больше, чем одна. Всё. Дальше этого вы не видите.
Соотвественно я ожидал услышать что то из этого:
А я ожидал, что ты хотя бы попытаешься подключить собственный мыслительный аппарат, и хотя бы раз в жизни додуматься до чего-то самостоятельно, а не прочтёшь на "уважаемом ресурсе".
Если же тебе так необходима бирка с печатью, то вот она:

6. Оптимизировать надо то, что тормозит. То, что тормозит твой конкретный скрипт. А не то, про что ты прочёл в газете.
Оптимизировать надо те участки, обработка которых занимает 90% времени. А не те, которых 1.
 

Slastik

Новичок
Оптимизировать надо то, что тормозит. То, что тормозит твой конкретный скрипт. А не то, про что ты прочёл в газете.
Оптимизировать надо те участки, обработка которых занимает 90% времени. А не те, которых 1.
эх йолки
обидно

да разве я с этим не согласен :(
но я ведь не говорил ничего про sql запросы, я ведь не дал скрипт в котором много тормозов, из за запроса или еще чего нить, и не жалуюсь что я мол прочитал статью про оптимизацию, и поменял двойные на одинарные а скрипт мой все равно в два раза быстрее не работает
я ведь не вообще о оптимизации

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

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

во общем то после всего вышесказанаго, я пришел,
к выводу что статья Бородина впринципе правильная
но в реальных скриптах этого ускорения не заметиш,
потому что почти все тормоза будут в других местах

следовательно буду использовать конкатенацию, так как от этого: не страдает читабельность, мне удобнее, и при этом еще хотть и маленький маленький но прирост в скорости

Спасибо
 

itprog

Cruftsman
Slastik, Кстати, можно провести маленький тест, который покажет что "пробелы в коде" тормозят...Так давай теперь весь код будет в одну строчку писать и без пробелов!Ведь это лишние тысячные!
PS: Хотя при большом количестве пробелов время выполнения увеличивается на 2-3 секунды, достаточно измерить время выполнения скрипта <? [около 10 мб одних пробелов] ?>
 

Slastik

Новичок
Автор оригинала: itprog
Slastik, Кстати, можно провести маленький тест, который покажет что "пробелы в коде" тормозят...Так давай теперь весь код будет в одну строчку писать и без пробелов!Ведь это лишние тысячные!
PS: Хотя при большом количестве пробелов время выполнения увеличивается на 2-3 секунды, достаточно измерить время выполнения скрипта <? [около 10 мб одних пробелов] ?>
ты либо не прочитал что я написал, либо я абсолютно не умею выражать свою мысль

КАКИЕ пробелы?
как по твоему код будет смотреться без пробелов?
читабельно ?

я ведь написал
бесспорно, читабельность кода важнее чем микросекунды
а вот кавычки абсолютно НЕ уменшают читаемость,( хотя как я писал может я заблуждаюсь, (всмысле читабельности))
 

SelenIT

IT-лунатик :)
Имхо, основное преимущество конкатенации перед интерполяцией - не микросекунды, а возможность одинаково работать как со скалярами, так и с ассоциативными массивами без каких-либо "сюрпризов".
 
Сверху