Ускорение PHP-программ
12 Сен 2007Как без особых усилий заставить PHP-код работать на порядок быстрее ? Перед тем как задаваться вопросами кеширования и масштабирования стоит попробовать оптимизировать код. Есть ряд несложных правил:
- Выносите переменные из строк. Примерно так: <?php $x=»test».$test; ?> , это на 25-40% быстрее.
- Имена переменных должны быть короче 7 символов. Это быстрее на 15%.
- В массивах не стоит обращаться к элементам по имени и без кавычек. Особенно в многомерных. Сэкономите 40%.
- А если обращение к элементу массива вынести из строки (как в пункте 1), то можно сэкономить ещё 25-30%.
- Используйте Perl-ориентированные регулярные выражения. Или хотя бы сравнивайте их с POSIX-аналогами по скорости выполнения. Скорость может отличаться до 200% на разных запросах.
- SizeOf() быстрее Count(), а в циклах sizeof лучше вообще заменить на переменную, for и while практически не отличимы, для перебора простых индексных массивов нужно использовать for или while, а для ассоциативных массивов — foreach. Плюс 30% при соблюдении.
- Для чтения файла file() быстрее, чем fopen()+цикл. Ускорение до 40%.
Прочитать про всё это подробнее, посмотреть графики скорости и загрузить все примеры можно вот тут: «Оптимизация программ на PHP«.
Друзья добавляют:
> +Ну и конечно не стОит забывать о битовых операторах для хранения флаговых (чекбоксовых) наборов значений.
почему это быстрее отдельных переменных для каждого значения?
спасибо, это полезенькая информация
А чёрт его знает… Почему-то так =)
Особенность платформы, полагаю. Сам не пробовал с этим играться.
На зеркале в яндекс-блогах юзверь zvepr рассказывает о указателях (мне показалось очень интересным объяснение):
Это не первая статья посвященная оптимизации PHP кода, которую я читаю. И в основном все ориентировано на PHP 3. Почему не более поздних версий? Да просто. Язык развиваются, разработчики наученные на прежних ошибках умнеют :) Ну и один из главных факторов — быстрый рост мощностей… Вспомните время, когда писали на аспе (сам не писал, но рассказывали) — боролись за каждый байт информации, оптимизировали все, что только можно, а сейчас…эх.. горе-программистов 90 из 100 и эти «программисты» пишут код, который иногда легче выкинуть чем переписать :)
Таких фанатиков ещё много. 128кб-конкурсы ещё шумят на Chaos Constructions :-D
UPD: у меня плохое настроение, поэтому толпа умников-баянистов меня напрягает.
Комментарии закрыты.
Software Development Guide…
I couldn’t understand some parts of this article, but it sounds interesting…
[…] распознавания цифер на картинках). Еще понравилось Ускорение РНР-программ, т.к. я сейчас занимаюсь сайтом, который много парсит и […]