Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Нужен совет по оптимизации скорости своей ЦМС на ПХП (решен)
цитата
08/02/11 в 10:57
 Happy Oyster
ЦМС готовит код, который потом выдается клиенту следующим образом:

Код:

foreach ($HTML as $Line)  {   echo($Line);  }


Ставил опыты и получилось, что эта конструкция работает 0.2-0.3 секунды.

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

Просто вначале у меня ЦМС при каждом обращении генерила страницы "налету" и это занимало у нее 0.3-0.5 сек. После того как я добавил кеширование, которое берет страницу из кеша за 0.0001 сек, общее время уменьшилось до 0.2-0.3 и получается что узким местом является приведенный кусок кода icon_sad.gif

Спасибо.

Последний раз редактировалось: Happy Oyster (08/02/11 в 11:16), всего редактировалось 1 раз
цитата
08/02/11 в 11:08
 FXIX
ниче непонятно. сделай профилирование нормально.
цитата
08/02/11 в 11:14
 Happy Oyster
Разобрался: узкое место-канал. При обращении с сервера все отдается на порядок-два быстрее.
цитата
08/02/11 в 11:14
 ibiz
ага, ничего не ясно, нужно больше инфо
цитата
08/02/11 в 11:18
 taj
Твой канал чтоли?
цитата
08/02/11 в 11:21
 Happy Oyster
Цитата:
Твой канал чтоли?


Фиг знает. На сервере 10 мбит из которых свободно примерно половина, на моей стороне 4 мбит.

Когда забираю морду сайта весом 30 кб от себя получается 0.4-0.3 сек, когда пробую с сервера: 0.025 сек
цитата
08/02/11 в 11:24
 ibiz
Happy Oyster писал:
Фиг знает. На сервере 10 мбит из которых свободно примерно половина, на моей стороне 4 мбит.
Когда забираю морду сайта весом 30 кб от себя получается 0.4-0.3 сек, когда пробую с сервера: 0.025 сек


вообще скорость скриптов измеряется не каналом, а железом, к примеру CPU 3.0, 1Gb RAM
и выводишь время выполнения
цитата
08/02/11 в 11:30
 taj
Страница как я понял уже в кеше, вот и отдай её сразу целиком. Зачем этот метод?
цитата
08/02/11 в 11:42
 Happy Oyster
Цитата:
Страница как я понял уже в кеше, вот и отдай её сразу целиком.


дык так и делаю

Код:

$HTML=file("cache.html");

list($msec, $sec) = explode(chr(32), microtime());
$time = $sec + $msec;

foreach ($HTML as $Line)  {   echo($Line);  }

list($msec, $sec) = explode(chr(32), microtime());
echo('<!-- Page generated in '.round(($sec + $msec) - $time, 4).' sec -->');


с удаленной машины 0.2-0.4 сек
с lynx на сервере 0.025 сек
цитата
08/02/11 в 11:50
 ibiz
Happy Oyster писал:
дык так и делаю
Код:

$HTML=file("cache.html");
list($msec, $sec) = explode(chr(32), microtime());
$time = $sec + $msec;
foreach ($HTML as $Line)  {   echo($Line);  }
list($msec, $sec) = explode(chr(32), microtime());
echo('<!-- Page generated in '.round(($sec + $msec) - $time, 4).' sec -->');

с удаленной машины 0.2-0.4 сек
с lynx на сервере 0.025 сек


а почему не использовать include("cache.html"); ?
цитата
08/02/11 в 11:51
 mr. snatch
Happy Oyster писал:
дык так и делаю
[code]
$HTML=file("cache.html");
foreach ($HTML as $Line) { echo($Line); }

жёстко ты статику выводишь)
Код:

$cache = 'cache.html';
...
if (file_exists($cache )) {
echo file_get_contents($cache);
}
...

там, с буферизацией ещё поиграться можно, gzip-ы вывода разные, тот же инклюд в зависимости от ситуации и особенностей и т.д.

Последний раз редактировалось: mr. snatch (08/02/11 в 11:53), всего редактировалось 1 раз
цитата
08/02/11 в 11:53
 taj
Зачем построчно? Дело конечно не в этом, но смысла так делать нет.
Попингуй свой рес, может проблемы у тебя в канале.
цитата
08/02/11 в 12:04
 mr. snatch
так же, возможно что в твоём случае, что-то вроди этого
цитата
08/02/11 в 12:05
 ibiz
mr. snatch писал:
жёстко ты статику выводишь)
Код:

$cache = 'cache.html';
...
if (file_exists($cache )) {
    echo file_get_contents($cache);
}
...

там, с буферизацией ещё поиграться можно, gzip-ы вывода разные, тот же инклюд в зависимости от ситуации и особенностей и т.д.


кстати да, лучше всего использовать http://ru.php.net/readfile
и скорость высокая и память кушает мало icon_smile.gif
цитата
08/02/11 в 12:07
 Happy Oyster
Спасибо mr. snatch - именно это я хотел узнать


Эта страница в полной версии