[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Тормоза и глюки
andrey
Помогите разобраться. Создал пару php-страничек; обработка данных местами конечно жёсткая: и чтение из файлов, и работа с базой данных, и создание сессий. Но работает всё нормально и довольно быстро.
А проблема такая: при одновременной работе с двух компов начинаются тормоза, а иногда выдаются ошибки (невозможно подключиться к базе, и ещё всякая ересь). Из-за чего такие проблемы могут возникнуть? Из за слишком сложного кода, ошибок в нём или ещё какой-нибудь ерунды? Или может зависит от сервера, где захостил сайт?



Спустя 5 минут, 34 секунды (12.03.2010 - 19:50) sergeiss написал(а):
Вот эти слова
Цитата (andrey @ 12.03.2010 - 20:45)
и чтение из файлов

наводят на мысли о том, что происходит одновременное обращение к одному и тому же файлу.
Опять же - что именно ты делаешь с БД? Может быть, даешь "тяжелые" запросы, которые совершенно не оптимизированы и поэтому "вешают" БД.

Без кода тут можно только "гадать на кофейной гуще".

Спустя 6 минут, 45 секунд (12.03.2010 - 19:57) Nikitian написал(а):
Это ж насколько активно надо открывать странички, чтобы с двух компов ловить блокировки файлов %)

Спустя 2 минуты, 13 секунд (12.03.2010 - 19:59) sergeiss написал(а):
А это смотря сколько времени файл будет открыт smile.gif Если очень постараться, то можно и с 2-х компов "поймать глюк".

Спустя 8 часов, 47 минут, 42 секунды (13.03.2010 - 04:47) andrey написал(а):
Я бы конечно вставил код, но там 5 php страничек и на какой конкретно глюк, я не знаю:( Можно кому-нибудь на мыло скинуть, чтоли? К базе то вроде запросы не сложные, а вот с файлами... Хотя и файлы то небольшие, максимум строк по 50.

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

Заранее спасибо за помощь!

Спустя 1 день, 1 час, 34 минуты, 35 секунд (14.03.2010 - 06:22) Guest написал(а):
Ладно попробую выложить код. Первая страничка (на ней выводится приглашение: введите свой пол, возраст и.т.д):
<?php

echo "<form action=\"psihtest.php\" method=\"post\">";
$fh = fopen("list.txt","r");
echo "<h2>Выберите тестирование</h2>";
echo  "<select name=\"test\">";
while (!feof($fh))
{
$nom=fgets($fh);
$line=fgets($fh);
if($line!="")
echo  "<option value=".$nom." >".$line."</option>";
fgets($fh);//заголовок
fgets($fh);//пробел
}
echo  "</select>";
fclose($fh);

echo "<br><h2>Введите свои данные</h2>";
echo "Пол";
echo "<br>";
echo  "<select name=\"pol\">";
echo  "<option value=\"1\" >Женский</option>";
echo  "<option value=\"2\" >Мужской</option>";
echo  "</select>";
echo "<br>";

echo "Возраст";
echo "<br>";
echo  "<select name=\"voz\">";
echo  "<option value=\"1\" >Меньше 18</option>";
echo  "<option value=\"2\" >18-30</option>";
echo  "<option value=\"3\" >30-60</option>";
echo  "<option value=\"4\" >Больше 60</option>";
echo  "</select>";

echo "<br>";
echo "Образование";
echo "<br>";
echo  "<select name=\"obr\">";
echo  "<option value=\"1\" >Среднее</option>";
echo  "<option value=\"2\" >Среднее специальное</option>";
echo  "<option value=\"3\" >Высшее</option>";
echo  "</select>";

echo "<br>";
echo "<br>";
echo  "<button type=\"submit\" >Начать тестирование</button>";

echo "</form>";

?>

Спустя 2 минуты, 52 секунды (14.03.2010 - 06:25) andrey написал(а):
Вторая страничка. На ней пользователю предлагается пройти тестирование. Выводятся вопросы из файла и к каждому три варианта ответов.

Спустя 1 минута, 2 секунды (14.03.2010 - 06:26) andrey написал(а):
Третья страница. Обработка результатов и занесение в БД.

Спустя 3 минуты, 45 секунд (14.03.2010 - 06:29) andrey написал(а):
В общем понимаю, что разобраться в моём коде сложно. Но так, на первый взгляд, где кроется причина тормозов?
P.S. Да, и не судите строго, если код сильно нубский, я на php где-то неделю назад только начал писать...

Спустя 3 часа, 53 минуты, 6 секунд (14.03.2010 - 10:22) sergeiss написал(а):
andrey - во-первых, используй тэги оформления кода (на форуме)! Это существенно улучшает его читаемость. Для этого введенный код выделяешь, и нажимаешь одну из кнопочек над полем ввода (PHP, SQL, HTML или другую, в зависимости от типа кода). Сейчас это я проделал. Разницу в восприятии кода оцени сам.

По теме. Поставь в разных местах скрипта код
echo 'Time : '.date( 'H:i:s' ).'<br>';

можешь даже сделать его в виде функции и просто вызывать ее. Это позволить одним изменением внутри функции отключить весь этот вывод, когда он не нужен.
И оцени, сколько времени выполняется та или иная операция. По разнице времени до и после операций.

И еще - посмотри в сторону фунции file(), Она позволяет быстро загрузить весь файл в массив, с которым уже потом можно работать.

Спустя 30 минут, 29 секунд (14.03.2010 - 10:53) Guest написал(а):
Да, насчёт форума я тупанул, не заметил эти кнопочки:) Спасибо.
Поставил во все мыслимые и немыслимые места проверку времени. Вобщем от начала до конца скрипта выдаёт одно и то же время до секунды. Как я понял, все операции выполняются быстрее, чем за секунду. Это наверное и правда так, при доступе с одной машины нету никаких тормозов...

Спустя 24 минуты, 31 секунда (14.03.2010 - 11:17) sergeiss написал(а):
Цитата (Guest @ 14.03.2010 - 11:53)
Это наверное и правда так, при доступе с одной машины нету никаких тормозов...

Цитата (andrey @ 12.03.2010 - 20:45)
А проблема такая: при одновременной работе с двух компов начинаются тормоза

Ну так и проверь, что происходит при обращении с 2-х компов!

Спустя 7 минут, 15 секунд (14.03.2010 - 11:25) andrey написал(а):
Был бы второй комп под рукой....

Спустя 1 час, 25 минут, 19 секунд (14.03.2010 - 12:50) andrey написал(а):
Сейчас попробовал зайти с 2-х компов. Тормозов нету! Может тогда на сервере какие-то проблемы были и я зря волновался? В любом случае всем спасибо biggrin.gif
Быстрый ответ:

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