Как отправить много запросов POST БЫСТРО - PullRequest
4 голосов
/ 29 февраля 2012

Я планирую разработать программу для нашего университетского исследования, которая должна отправлять множество запросов по почте на разные URL. Он должен работать как можно быстрее (мы должны обработать около 100kk URL). Какой язык я использую (сейчас немного пишу на с ++, delphi и perl)?

Кроме того, я слышал, что можно написать многопоточное приложение на Perl, используя prefork, который может обрабатывать около 20-30k в минуту. Это правда?

// Извините за мой плохой английский, но, похоже, это единственное место, где я могу получить правильный ответ

Andrew

Ответы [ 3 ]

15 голосов
/ 29 февраля 2012

20-30к в минуту совершенно произвольно. Если вы запустите это на 8-ядерном компьютере с мощным сетевым подключением, вы, вероятно, превзойдете это.

Однако я не думаю, что ваш выбор языка программирования / библиотеки будет иметь здесь большое значение. Вместо этого вы столкнетесь с количеством одновременных TCP-соединений, разрешенных машиной, а также с пропускной способностью самой ссылки.

5 голосов
/ 29 февраля 2012

Webserver Stress Tool утверждает, что способен имитировать HTTP-запросы, сгенерированные до 10.000 одновременных пользователей и имеет запись на сайте Торри : предположительно это написано в Delphi или C ++ Builder.

Мое предложение:

Вы можете написать свой пользовательский инструмент для стресса (клиент HTTP (S)) с Delphi (это мой любимый язык, поэтому я рекомендую его) с использованием легкой библиотеки HTTP (S), такой как RTC SDK и OmniThreadLibrary для многопоточности.

Смотрите эту страницу для подсказки / подсказки.


Edit:

Выдержка из демонстрации \ Readme_Demos.txt в RealThinClient_SDK331.zip

Демоверсии клиента приложения, сервера и ISAPI можно использовать для стресс-теста RTC компонент с использованием удаленных функций с надежным шифрованием путем открытия сотни соединений от каждого клиента и затопления Сервер / ISAPI с запросами.

App Client Demo идеально подходит для стресс-тестирования удаленных функций RTC с использованием несколько соединений в многопоточном режиме, наглядно показывая активность и этап для каждого соединения в живом графике. Клиент может выбрать между «Прокси» и стандартными компонентами подключения, чтобы увидеть разница в использовании и распределении пропускной способности.

1 голос
/ 29 февраля 2012

Я слышал, что Erlang очень хорош для таких приложений, поскольку он очень эффективен для быстрого запуска многих процессов в Erlang.Но я думаю, что с использованием Python тоже было бы хорошо, просто используйте модуль popen для запуска нескольких процессов.В конце концов, вы ограничены тем, сколько вы можете запустить одновременно, в зависимости от того, сколько процессоров на вашей машине.Выбор языка может не иметь большого значения в зависимости от того, что вы делаете с данными, загруженными с этих URL-адресов, поскольку это может потребовать более интенсивной обработки, чем стоимость нереста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...