MeZon Team
ГлавнаяО насДокументацияКаталог статейСсылкиОбратная связь

Оптимизация PHP скриптов

Отличие PHP от других языков программирования, например, C++, Pascal и т.д. заключается в том, что исходный код программы на php при каждом обращении к скрипту интерпретируется по-новой. Поэтому важно научиться правильно (оптимально) составлять код программ.

Рекомендации:

  • используем короткие имена переменных (не более 4 символов)
  • используем sizeof() вместо count()
  • выносим определение размера массива за пределы цикла
  • элементы масива с числовыми индексами лучше перебирать через for/while
  • элементы ассоциативного масива лучше перебирать через foreach
  • доступ к элементу одномерного ассоциативного массива по имени, не заключенному в кавычки, тормозит процесс на треть
  • не создаем лишних переменных. Вместо $x=1; $y=2; $z=x+y; пишем $z=1+2
  • выносите $переменные из "текстовых строк" и вместо echo " Итого: $cnt"; используйте echo ' Итого: '.$cnt;
  • для чтения файла file() быстрее, чем fopen+цикл

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

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

Проведя ряд экспериментов, можно получить интересный результат: если в функцию передавать глобальные переменные в виде параметров функции, а не через директиву global, то работа локального участка кода php-скрипта увеличивается в 2 раза.

Чем меньше трафик от сервера к клиенту, чем быстрее загружаются страницы. Следующий эксперимент позволил ускорить работу php-скриптов в 4 - 20 раз! Действительно, впечатляющие показатели. Чтобы добиться такого ускорения, нужно использовать всего два оператора PHP:

  • @ob_start("ob_gzhandler"); - в самом начале скрипта.
  • @ob_end_flush(); - в завершении скрипта.

Первая команда создает объект, в который перенаправляется вся информация после работы php-скрипта. Вторая команда отправляет содержимое буфера клиентскому приложению (браузеру) и удаляет буфер.

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

Ссылки

 

Главная | Новости | О нас | Проекты | Документация | Каталог статей | Ссылки | Обратная связь
Каталог TUT.BY © 2002-2017 MeZon Team, Minsk, Republic of Belarus.
Meta Zone Web Engine v4.9
2017.06.25 08:15:20