[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Долгая загрузка сайта
cyberside
Использую на сайте подключение к базе данных около 4-8 + 8(стандартные от cms) в зависимости от страници.
Время загрузки сайта может идти от 1.684 сек до 8.8 сек.

Использую include как способ вывода блока и данных.
Вот основной запрос:


include('db.php');
$get_1 = mysql_query("SELECT * FROM `teams` ORDER BY `teams`.`rank` DESC LIMIT 0 , 10");
$myrow = mysql_fetch_array($get_1);


Зарание спасибо!



Спустя 2 минуты, 33 секунды (28.07.2011 - 10:59) alex12060 написал(а):
cyberside

Этого куска, мм, простите, мало..
Ну а так, навскидку - не используйте mysql_fetch_array()
используйте mysql_fetch_assoc()

Спустя 47 секунд (28.07.2011 - 11:00) cyberside написал(а):
Закрыто

Спустя 14 минут, 42 секунды (28.07.2011 - 11:15) alex12060 написал(а):
Боже всемогущий :blink:

Ну, что сказать, тут полный кавардак.
Я попробую перечислить.

1. <? - не используйте шорт теги. Используйте <?php
2. $dohtml = <<<HTML <- никогда не используй такую конструкцию. Зачем заносить весь хтмл в одну переменную, а потом - выводить? Уму не постяжимо...
3.
$team = htmlspecialchars($team);
$team = stripslashes($team);
$team = trim($team);

Ужас дикий, мама не горюй. Тут ресурсами бросаетесь туда и обратно.
4. Про mysql_fetch_array() сказал уже.
5. Использовать вывод в двойных кавычках, где не планируется подставление переменных - бессмысленно.
6. Очень-очень много переменных, вообще, безобразие. Ненужные переменные лучше, либо перезаписывать, либо уничтожать.
7. Ужасный непонятный безстильный код.

Спустя 3 минуты, 26 секунд (28.07.2011 - 11:18) cyberside написал(а):
Ну я только начал заниматься PHP, только 2 недели этим делом как увлекся...
Спасибо что уделяешь внимание)

Спустя 4 минуты, 47 секунд (28.07.2011 - 11:23) VELIK505 написал(а):
Выводи в футер Дебаг. Кол-во затраченой оперативной памяти на странице. Кол-во SQL запросов. Кол-во соединений с БД. Время генерации страницы. И если сможешь время выполнения каждого запроса. и уже всё будет понятно что грузит

Спустя 6 минут, 43 секунды (28.07.2011 - 11:30) cyberside написал(а):
Стандартно:
Страница сгенерирована за 0.043 - 0.055 секунд(ы). Использовано запросов: 10. GZIP включен.



С ниже приведенным кодом:
Страница сгенерирована за 0.863 секунд(ы). Использовано запросов: 10. GZIP включен.


<?php
/*
Copyright © CYBERSIDE LEAGUE CSL
Копировать данные строго запрещено
Регистрация команды в базу данный, с последующим созданием страници
*/


include('db.php');
$result = mysql_query("SELECT * FROM `teams` ORDER BY `teams`.`id` DESC LIMIT 0 , 5");

echo "<table class=\"newteams\">";

$myrow = mysql_fetch_assoc($result);
if($myrow['id'] != ""){
echo "<tr><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['status']."\" class=\"s\" align=\"middle\" /></td><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['country']."\" class=\"c\" align=\"middle\" /></td><td><b><span style=\"color: #444;\">".$myrow['tag']."</span></b></tr>";
}
else {echo "<tr><td></td></tr>";}

$myrow = mysql_fetch_assoc($result);
if($myrow['id'] != ""){
echo "<tr><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['status']."\" class=\"s\" align=\"middle\" /></td><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['country']."\" class=\"c\" align=\"middle\" /></td><td><b><span style=\"color: #444;\">".$myrow['tag']."</span></b></tr>";
}
else {echo "<tr><td></td></tr>";}

$myrow = mysql_fetch_assoc($result);
if($myrow['id'] != ""){
echo "<tr><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['status']."\" class=\"s\" align=\"middle\" /></td><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['country']."\" class=\"c\" align=\"middle\" /></td><td><b><span style=\"color: #444;\">".$myrow['tag']."</span></b></tr>";
}
else {echo "<tr><td></td></tr>";}

$myrow = mysql_fetch_assoc($result);
if($myrow['id'] != ""){
echo "<tr><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['status']."\" class=\"s\" align=\"middle\" /></td><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['country']."\" class=\"c\" align=\"middle\" /></td><td><b><span style=\"color: #444;\">".$myrow['tag']."</span></b></tr>";
}
else {echo "<tr><td></td></tr>";}

$myrow = mysql_fetch_assoc($result);
if($myrow['id'] != ""){
echo "<tr><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['status']."\" class=\"s\" align=\"middle\" /></td><td style=\"vertical-align: center; width: 25px;\"><img src=\"".$myrow['country']."\" class=\"c\" align=\"middle\" /></td><td><b><span style=\"color: #444;\">".$myrow['tag']."</span></b></tr>";
}
else {echo "<tr><td></td></tr>";}

echo "</table>";
?>

Спустя 6 минут, 6 секунд (28.07.2011 - 11:36) VELIK505 написал(а):
10 sql запросов на страницу??? Многовато будет!!
А оперативочку давай глянем сколько кушает.
Использовано озу <?php
echo round(memory_get_usage()/1024);
?> кб

Спустя 1 минута, 17 секунд (28.07.2011 - 11:37) cyberside написал(а):
сек

Спустя 2 минуты, 20 секунд (28.07.2011 - 11:39) VELIK505 написал(а):
1857 - афигеть можно это очень много!!! 400кб то много. А у тебя почти 2мб жрёт. такого быть не должно разбирайся.

Спустя 1 минута, 11 секунд (28.07.2011 - 11:41) cyberside написал(а):
Знал бы как разобрался б давно)

Спустя 23 минуты, 23 секунды (28.07.2011 - 12:04) Nikitian написал(а):
Проблема не в виде кода, а в работе с бд. Точнее, бд нагружена и банально очень долго отвечает - отсюда и тормоза.

include('db.php');
$start = microtime(true);
$result = mysql_query("SELECT * FROM `teams` ORDER BY `teams`.`id` DESC LIMIT 0 , 5");
echo microtime(true)-$start;

Что выводит?
Всё остальное, указанное ранее, на производительность практически не влияет и 10 запросов на страницу - это не так уж и много, если они отрабатывают за сотые и тысячные секунды, а так и должно быть.

Спустя 2 минуты, 44 секунды (28.07.2011 - 12:07) cyberside написал(а):
0.00014400482177734

Debug:
ОЗУ: 1804 Кб. Страница сгенерирована за 0.857 секунд(ы). Использовано запросов: 10. GZIP включен.

Спустя 8 минут, 53 секунды (28.07.2011 - 12:16) Nikitian написал(а):
Сколько записей в таблице teams? И сколько одинаковых prop и team?

Спустя 20 секунд (28.07.2011 - 12:16) cyberside написал(а):
5.2213668823242E-5
ОЗУ: 1804 Кб. Страница сгенерирована за 0.942 секунд(ы). Использовано запросов: 10. GZIP включен.

7.4863433837891E-5
ОЗУ: 1804 Кб. Страница сгенерирована за 0.824 секунд(ы). Использовано запросов: 10. GZIP включен.

Чаще всего выскакивает такое...

Спустя 2 минуты, 38 секунд (28.07.2011 - 12:19) cyberside написал(а):
Одинаковых prop и team ниодного (при добавление стоит запрет на одинаковые).

Записей в teams: 3

Спустя 3 минуты, 37 секунд (28.07.2011 - 12:22) cyberside написал(а):
В db.php был mysql_set_charset(cp1251);, когда убрал, нашел проблему долгой загрузки...
Но избавился от решения проблемы с кодировкой (???????? - при руских символах)
Кто-то подскажет как сделать по уму?

Спустя 3 минуты, 18 секунд (28.07.2011 - 12:25) cyberside написал(а):
Код db.php
<?php
$db = mysql_connect ("localhost","****","****");
mysql_select_db ("*******",$db);
?>

Спустя 8 минут, 57 секунд (28.07.2011 - 12:34) alex12060 написал(а):
cyberside

<?php
$db = mysql_connect ("localhost","****","****");
mysql_select_db ("*******",$db);
mysql_query('SET NAMES cp1251');
?>

Спустя 40 секунд (28.07.2011 - 12:35) Nikitian написал(а):
Цитата (cyberside @ 28.07.2011 - 12:22)
В db.php был mysql_set_charset(cp1251);, когда убрал, нашел проблему долгой загрузки...
Но избавился от решения проблемы с кодировкой (???????? - при руских символах)
Кто-то подскажет как сделать по уму?


$db = mysql_connect ("localhost","****","****");
mysql_query ("use *******",$db);
mysql_query('set names cp1251',$db);

Спустя 1 минута, 30 секунд (28.07.2011 - 12:37) cyberside написал(а):
Спасибо.

Осталась проблема с ОЗУ. Время загрузки страниц упало в 1.8 - 2 раза... Но всеравно еще доходит до 5 секунд =(

Спустя 1 минута, 36 секунд (28.07.2011 - 12:38) alex12060 написал(а):
cyberside

Я одного опнять не могу, как ты определяешь время загрузки?

Спустя 1 минута, 6 секунд (28.07.2011 - 12:39) cyberside написал(а):
Страница сгенерирована за 5.118 секунд(ы).

Спустя 45 секунд (28.07.2011 - 12:40) alex12060 написал(а):
cyberside

А покажи код-определитель.

Спустя 1 минута, 23 секунды (28.07.2011 - 12:41) cyberside написал(а):
Это стандартный дебаг от cms, где он лежит не приложу ума...

Спустя 1 минута, 21 секунда (28.07.2011 - 12:43) alex12060 написал(а):
cyberside

ам, ну ясно smile.gif
Вообще, если у тебя винда, то, видимо еще она дает тормозов. У меня приложения на вине работаеют раз в 7 медленнее, чем на лине.

Спустя 35 минут, 59 секунд (28.07.2011 - 13:19) Nikitian написал(а):
Цитата (cyberside @ 28.07.2011 - 12:37)
Спасибо.

Осталась проблема с ОЗУ. Время загрузки страниц упало в 1.8 - 2 раза... Но всеравно еще доходит до 5 секунд =(

С ОЗУ проблем не вижу. Вполне приемлемое потребление памяти для cms.
Оптимизацию необходимо производить на сервере, где оно и будет работать. На винде у вас флеш в браузере решил скушать весь проц и генерация страницы резко затормозилась - таких вариантов может быть множество, поэтому винда, как и любая клиентская машина вообще - не показатель

Спустя 1 час, 23 минуты, 45 секунд (28.07.2011 - 14:42) maximka787 написал(а):
alex12060
Простите, вопрос не совсем в тему, уже не первый раз читаю и вопрос тут, а почему нельзя использовать шорт теги?

Спустя 13 минут, 52 секунды (28.07.2011 - 14:56) Nikitian написал(а):
maximka787
Не то, что бы нельзя, но нежелательно, т.к. такого вида тэг используется не только php. Например объявление xml-типа для xhtml-документа. Ясно видно, что у разработчиков темы этого форума возникла такая проблема и решили её кардинально (см html-код страницы)

Спустя 16 минут, 58 секунд (28.07.2011 - 15:13) maximka787 написал(а):
Nikitian
спасибо за ответ, все понятно теперь)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.