С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 15:46 |
Здравствуйте.
У меня есть
- скрипт, который парсит в большом количестве
- мощный инет (240 мбит/с) и компьютер
- денвер
Вот кусок кода:
Код: |
for(...)
{
...
$file_hendel=@fopen($url, "r");
$html = @fread($file_hendel, 5000);
@fclose($file_hendel);
...
}
|
Но интернет и компьютер скрипт не нагружает. Т.е. я хочу чтобы скрипт нагружал мой инет и компьютер на 90%. Как можно этого добиться?
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 18/09/08 в 15:49 |
многозадачностью
|
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 15:53 |
ibiz, это запустить скрипт много раз?
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 18/09/08 в 16:01 |
|
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 16:13 |
dDan, да и такие скорости есть! ;)
|
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 16:14 |
Так я правильно понял, что нужно просто запустить скрипт много раз?
|
|
|
|
С нами с 28.02.03
Сообщения: 8542
Рейтинг: 1609
|
Добавлено: 18/09/08 в 16:23 |
да а вобше такие выеши делают не на php а на perl на порядо быстрее будет работать
|
|
Сдам место в подписи. Предложения в личку.
|
3
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 16:30 |
Я бы сделал на perl, если бы его знал...
Сейчас у меня вот так примерно делаются потоки:
Код: | for(...)
{
...
echo "
<iframe src='http://site.ru/potok_generator.php?potok=".$n."' width='210' height='30' scrolling='auto' frameborder='1'> </iframe>
";
...
} |
Я его тестил, в ie вообще не изменяется скорость, а в ff она в начале увеличивается, но потом падает и работает очень медленно все равно...
Как можно более правильно это реализовать? Может нужен тег не iframe?
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 18/09/08 в 17:53 |
Может в самом скрипте не предусмотренно одновременное выполнение нескольких копий поэтому что 1 что 20 делают одну и туже работу.
Попробуй запустить в командной строке N копий Код: | z:/usr/bin/ /lalal/script.php |
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 18/09/08 в 17:54 |
ibiz писал: | многозадачностью |
скорее многопоточность
|
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 18:24 |
-=Faraon=-,
z:/usr/bin/ z:/home/site.ru/www/potok_generator.php
Запустил, открылась папка z:/usr/bin/ и все
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 18/09/08 в 18:35 |
ну уставший я мешки всю ночь грузил
z:\usr\bin\php z:\home\site.ru\www\potok_generator.php
догадаться надо только!
поправил!
Последний раз редактировалось: -=Faraon=- (18/09/08 в 20:13), всего редактировалось 2 раз(а)
|
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 19:18 |
Просто открылся и закрылся exe...
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 18/09/08 в 20:14 |
расширение пхп pcntl в помощь (хотя работает ли это на виндах?)
или curl_multi
или просто тупо руками запустить штук сто скриптов.
причем тут денвер не знаю. можно и из командной строки пускать.
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 18/09/08 в 20:28 |
Всё там работает
слеши просто не виндовские поставил!
z:\usr\bin\php z:\home\site.ru\www\potok_generator.php
вот рабочий!
pcntl работает!
|
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 21:03 |
-=Faraon=-:
У меня загружается exe файл и закрывается сразу.
А что делает эта команда?
Pentarh: сейчас читаю на счет curl...
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 18/09/08 в 21:17 |
тыб уже стукнул и всё бы давно заработало.
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 18/09/08 в 21:24 |
Конечно писк профессионализма это неблокирующиеся сокеты и циклы select-read/select-write без всяких там форков
открываешь штук 100 сокетов, ставишь неблокирующий режим и в цикле начинаешь их опрашивать, писать в них запрос, читать по кускам ответ.
на перле вообще пиздато такие финты делать. он для этого больше подходит.
|
|
|
|
С нами с 03.01.05
Сообщения: 62
Рейтинг: 1
|
Добавлено: 18/09/08 в 23:49 |
спасибо -=Faraon=- и Pentarh за помощь!
Сейчас попробую несколько способов
Pentarh а есть примеры скриптов которые с помощью сокетов работают?
pcntl не пойдет у меня win xp...
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 19/09/08 в 01:00 |
Мои личные примеры на перле. Вот, порылся, нашел кое что.
Я правда сам не знал, что в пхп5 мультиплекс удобней реализован.
http://www.seoblog.com.ua/2007/03/20/multiplexing-in-php/
Но это в любом случае низкоуровневая работа с сокетами. Тебе самому прийдется эмулировать HTTP-взаимодействие. На phpclasses.net можно найти готовые классы для составления HTTP-запроса (хотя хули там составлять) и парсинга ответа.
Короче это намного сложнее чем $var=file('http://domain.com/url.txt');
|
|
|
|