Как повысить производительность PHP скриптов

KhasDenis

Guest
Как повысить производительность PHP скриптов

Необходимо повысить производительность PHP скриптов.
Скрипты работают с БД PostreSQL. Существуют ли какие нибудь способы
поиска узких мест(bottleneck) в работе скриптов.
Насколько могут повысить производительность хранимые процедуры, и
при какой сложности запросов их применение оправдано ?
Заранее благодарен за участие.
 

aloner

Guest
Узким местом чаще всего является передача данных из базы в PHP и наоборот.

Обычно бизнес-логику IMHO лучше держать в базе, а PHP использовать только для представления данных, а не для их обработки, хотя при этом подходе труднее перевести базу на нормальную СУБД (например, Oracle :) )

Способы поиска тормозов конечно же есть:
- pear::timer (или как-то так, не помню)
- DBG profiler

Самый удобный и эффективный способ "мерять базу" (IMHO) - какой-либо тонкий wrapper к функциям базы данных, умеющий мерять и показывать время каждого запроса.

Вот пример вывода похожей штуки: http://aloner.cpl.ru/lj/db-debug.gif

:D
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: Как повысить производительность PHP скриптов

Автор оригинала: KhasDenis
Необходимо повысить производительность PHP скриптов.
Скрипты работают с БД PostreSQL. Существуют ли какие нибудь способы
поиска узких мест(bottleneck) в работе скриптов.
А используемые в скриптах запросы сами по себе тестировались/оптимизировались? Индексы, настройка параметров СУБД, анализ статистики?

Чем искать узкие места собственно в скриптах aloner сказал...

Насколько могут повысить производительность хранимые процедуры, и
при какой сложности запросов их применение оправдано ?
Сложно сказать. Обрисуй задачу, что ли.
 

si

Administrator
Если конкретно PHP скриптов то Zend Accelerator (цена на него сильно упала нынче) или его Free аналог PHP Accelerator (но он не может работать одновременно с Zend Optimizer)

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

Можно взять trial Zend Accell и при помощи ab посмотреть что он может вам дать.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: aloner
Обычно бизнес-логику IMHO лучше держать в базе, а PHP использовать только для представления данных, а не для их обработки, хотя при этом подходе труднее перевести базу на нормальную СУБД (например, Oracle :) )
В данном конкретном случае ты не вполне прав; вообще-то Postgres'овский PL/PgSQL делался с бо-ольшущей оглядкой на Ораклёвый PL/SQL. Перенести процедуры будет не слишком сложно. ;)
 
Сверху