Обновление PHP 5.1.2 -> 5.2.6 = откуда тормоза?

Mister Twister

Новичок
Обновление PHP 5.1.2 -> 5.2.6 = откуда тормоза?

На домашнем компе, работающем под Вин2000, решил обновить PHP на что-то более современное, нежели 5.1.2. Единственная задача обновления дома - функция memory_get_usage(). Взял последний "stable" релиз, т.е. 5.2.6, в виде зип-архива. Обновил все, как положено, все настройки остались теми же, все работает, но на некоторых страницах происходит задержка при выдаче результата скрипта. То есть выдается какая-то часть страницы, потом происходит подвисание на несколько (2-5) секунд, и выдается остальная часть страницы. На одних страницах такое наблюдается, на других - нет, хотя страницы могут быть очень похожи друг на друга по всем параметрам.

Да, используется Апач 1.3.22 (если не изменяет память). Настройки Апача тоже не менялись.

Я сначала подумал, что тормоза возникают при обработке самого скрипта, поставил засекание времени через microtime, и оказалось, что скрипт отрабатывает очень быстро, как и задумано. Грубо говоря, выдается следующее:

А: х сек
...
Б: (х+0,01) сек

А и Б происходят практически в один момент времени, но Б мы видим после задержки в пару секунд! Во всех браузерах. Чтобы быть уверенным, я проверил отображение страниц даже в Lynx - то же самое!

Выходит, что тормоз возникает где-то между РНР и Апачем (включая обе стороны), но где??? Апач вообще не трогался, так что остается РНР... При откате назад на 5.1.2 тормоза пропадают, и все выдается моментально.

Всякие "flush" и конфигурационные настройки, связанные с буферизацией и т.п., на тормоза не влияют.

В общем, такова история болезни, и очень интересно узнать мнение широкой общественности по вечному вопросу - что делать?
 

Splurov

Новичок
Пальцем в небо: попробуйте отключить антивирус, если используется.
И что в логах апача? Всё чисто, никаких ошибок?
 

Активист

Активист
Команда форума
OS?

-~{}~ 06.11.08 11:04:

Да, поставь временные засечки, и посмотри, когда запрос приходи на обработку и когда кончается. (узнать до запроса или после идут тормаза)
 

Mister Twister

Новичок
антивируса нет

в логах ничего лишнего нет

OS - Windows 2000

"временные засечки" - так ставил же, скрипт отрабатывает быстро. см. выше.

что еще может быть?
 

Активист

Активист
Команда форума
Mister Twister
PHP как CGI? Библиотеки какие может не подгружаются? DLL-ки все заменил? (включая те, которые лежат в \windows)?
 

Mister Twister

Новичок
PHP как CGI

Если бы что-то не подгружалось, то были бы ошибки, а их нигде нет. Есть только тормоза.

DLL заменил все, а в \windows у меня ничего и не лежало, т.к. все было в \php...
 

Активист

Активист
Команда форума
Какие ошибки? Ошибки инициализации библиотек при выполнении PHP кода не выдаются в брузер, насколько я помню.

да, часть библиотеку, MySQL, CURL требуют наличия в папке \windows определенных DLL'ок (по крайней мере так было раньше).

Запусти из командной строки PHP.EXE в режиме отладки и посмотри.
 

Mister Twister

Новичок
при ошибках инициализации были бы записи в логах сервера, а их нет!

да и вообще - каким образом могут влиять процессы инициализации на выдачу результатов работы скрипта?

предположим, скрипт должен выдать:
"<p>сегодня хорошая погода</p>"
, а выдается
"<p>сегодня хоро"
, потом пару секунд тормоз, и наконец
"шая погода</p>" !!!
То есть тормоз возникает там, где в самом скрипте его ну никак не может быть!!!

а на что нужно смотреть в режиме отладки?

-~{}~ 28.02.09 11:18:

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

описанная выше "задумчивость" пропала, когда PHP был включен как модуль Апача.
т.е. проблема исчезла, но вопрос "почему" остался открытым...
 

Harling

Новичок
у меня на Viste проблемы с установкой PHP работает вообще не пойми как.
 

fixxxer

К.О.
Партнер клуба
Сочувствую. Советую придать себе ускорение в направлении ближайшей стены.
 
Сверху