The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Тормозит PHP при выводе большого контента - ПОМОГИТЕ!"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Тормозит PHP при выводе большого контента - ПОМОГИТЕ!"  
Сообщение от Сергей email(??) on 07-Май-07, 23:05 
Есть непонятная проблема.

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

<?
function getmicrotime()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = getmicrotime();

$a=file('1.html');
$a=implode('',$a);
echo $a;

$time_end = getmicrotime(); $time_work = $time_end - $time_start; die ("$time_work seconds\n");

?>

То вывод ОЧЕНЬ тормозит и апач начинает отдавать контент только через 8-9 секунд. Чтение данных (оператор file) занимает миллисекунды, все остальное куда-то теряется на передаче контента через echo

В конфиге PHP
memory_limit = 76M
output_buffering = 4096
PHP 4.4.4 собран как модуль апачи

где грабли? куда копать???

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Тормозит PHP при выводе большого контента - ПОМОГИТЕ!"  
Сообщение от spyfox email(ok) on 07-Май-07, 23:11 
попробуй поставить xdebug - поможет разобраться
Измерять время через microtime не совсем корректно
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Тормозит PHP при выводе большого контента - ПОМОГИТЕ!"  
Сообщение от Сергей email(??) on 08-Май-07, 18:30 
>попробуй поставить xdebug - поможет разобраться
>Измерять время через microtime не совсем корректно

Спасибо за совет. Не знал что есть xdebug

Ок, сегодня поставил. Ясности не добавилось:
общее время self time 9 203ms
getmicrotime 0,1ms
php::file - 8,8ms
php::implode - 3,2 ms

основная задержка происходит при выводе оператора echo в поток STDOUT

Если же вызвать php через SSH, например "php 1.php > out", то работа производится мгновенно, задержки 0,01 сек.

Явно проблема во взаимодействии между модулем PHP и апачем. Такое ощущение что взаимодействие осуществляется через жесткий диск (swap) ?

Как можно определить где грабли?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру