Участник

Зарегистрирован: Mar 2004
Место проживания:
Публикаций: 84
Статус:  |
Пришлось мне изобретать лисапед, писать свой маленький яндекс для сайта. Так получилось, что кое-где на сервере есть скрипты, выдающие только Location: с редиректом, т.е. их url не соответствует тому что будет загружено. В рез-те просто file(); чтобы загрузить страницку не получается использовать, нужно дополнять ее CURL, чтобы заполучить HTTP и если он 302 (пока только это рассматриваю), то взять из Header Location новый и загрузить file(); по нему (знаю знаю можно и не вызывать еще раз, а загрузить страницку и через CURL уже открытый, до этого руки не дошли пока что проверить, и суть не в этом).
Ð_то все преамбула, а вот вопрос: почему так медленно работает, может кто знает? :-) Я понимаю, у меня тяжелые страницы, пока из них выдирается http линки (тупо через массив, еще не прикрутил regexp) и слова (regexp-ами) для индексации много времени проходит, но с другой стороны, добавил только
PHP:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $page_url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$page_header = curl_exec($ch);
curl_close($ch);
для каждой страницы которую надо загрузить и время работы скрипта увеличилось с 167 до 239 секунд А линков всего 210.
Да да я знаю что делать это через php глупо, надо писать на перле вызывать по крону или сажать как демона а лучше всего писать на С или вообще взять да настроить чужой лисапед но все это тема другой передачи. Скажите пожалуста, почему так замедлилось от CURL и какие есть еще альтернативы :-)
W.M. добавил 19-07-2004 в 21:28:27:
Да, забыл добавить - гоняется все это под ХÐ_, апачь 1.3.26, Ð_НÐ_ 4.2.1 как CGI, процессор P4 1,6 ГГц, 512 Ð_АМ, когда Ð_НÐ_ шукает странички, загрузка CPU приближается к 90-100%
W.M. добавил 19-07-2004 в 23:02:34:
Люблю я сам на свои вопросы отвечать...
Протестировал на голом html весом 975 байт, в while {} 5000 вызовов curl с инициализацией, установкой параметров, загрузкой заголовка, завершения сессии curl заняло 92 секунды. Делаем вывод - реально страница тяжело 1 - собирается Ð_НÐ_-ом, 2 - разбирается им же поэтому так долго. Остается другой вопрос - чем это (получить отдельно заголовок отдельно боди) сделать лучше можно (средствами php конечно, другому не обучены )
Сообщение было отредактировано W.M. 19-07-2004 в 23:05
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|