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 и получается что узким местом является приведенный кусок кода
Спасибо.
Последний раз редактировалось: 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
и скорость высокая и память кушает мало
цитата
08/02/11 в 12:07
Happy Oyster
Спасибо mr. snatch - именно это я хотел узнать
Новая тема
Ответить
Эта страница в полной версии