Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поиск слабого звена в работе PHP-скрипта

12K
19 января 2007 года
elbeet
15 / / 13.02.2006
Загружается страничка, сначала появляется шапка сайта, потом долго что-то работает (php+Mysql) и в конце концов подгружается всё остальное.
Как определить, что работает наименее оптимально? Какой кусок PHP? Какие запросы MySQL?
И БД стараюсь чистить регулярно, что бы была поменьше, и индексы проставлены, и код постоянно подправляется/оптимизируется.
А может всё дело не в моих кривых скриптах, а в провайдере (Зенон НСП)?
15
19 января 2007 года
shaelf
2.7K / / 04.05.2005
Есть волшебное слово - профайлинг))) Microtime() в руки и вперёд)) А для БД EXPLAIN рулит не по детски.
253
20 января 2007 года
Proger_XP
1.5K / / 07.08.2004
Если шапка уже грузится значит дело не вп прове. Напиши microtime(true) в разные места скрипта, и записывай в файл, как сказал shaelf ;)
271
20 января 2007 года
MrXaK
721 / / 31.12.2002
именно потом подгружается всё остальное или просто не показывается в браузере?
пример из моей жизни: дизайнер сделал дизайн, что код страницы порядка 300Кб... там куча вложенных таблиц, есть незакрытые элементы)) а браузеры типа ие не показывают таблицу пока она не загрузится до конца) вот и получается, что сервер выдаёт всё более-менее нормально, но полной загрузки приходится ждать довольно долго)
253
20 января 2007 года
Proger_XP
1.5K / / 07.08.2004
точно. можно делать периодически flush()(ob_flush())
p.s: не только ие. ff тоже
1.9K
20 января 2007 года
InterWen
331 / / 16.09.2006
Зачем же ручками микротаймы выводить?
Кажется можно устроить тестирование поизвращенее:
см. ман. -- void register_tick_function (string func [, mixed arg])

или сразу в начало страницы например что-то вроде:


Код:
list($msec,$sec)=explode(chr(32),microtime());
$ticksBegTime=$sec+$msec;
function TF__()
    {
    list($msec,$sec)=explode(chr(32),microtime());
    $r = round( ($sec+$msec)-$GLOBALS['ticksBegTime'], 4 );
    echo "<BR>\r\n".$r."\r\n<BR>";
    return 0;
    }

register_tick_function ("TF__");
declare (ticks=1) {



ну и в самый конец закрытие (открытого катеПушкаревским брэкетом)блока declare - "}"


так микротаймыбудут выкидываться после каждого "(ticks=1)" 1 тика
"Тик/tick это событие, которое возникает для каждого оператора N нижнего уровня, выполняемого разборщиком внутри блока declare. Значение N специфицируется ticks=N внутри раздела directive блока declare."


Страница будет выглядеть прикольно, но для просмотра в ХТМЛ прокатит, там и лови подозрительные "наросли" времени.
253
21 января 2007 года
Proger_XP
1.5K / / 07.08.2004
охо. я и не знал про это :)) Просветил, можно попробовать и так.... Хотя я бы всеравно юзал microtime() (привычка?)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог