Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Скорость краулинга на среднем железе


Автор: CSharpProgrammer 19.5.2014, 14:26
Задача следующая: дан список уникальных доменов, нужно спарсить индексные страницы для всех доменов из списка. На данный момент на моем железе (Intel i5 - 3210M 3.1 GHz CPU, 6GB RAM) средняя скорость скорость не подымается выше 20 доменов в секунду.

Код был взят из примера https://svn.apache.org/repos/asf/httpcomponents/benchmark/httpclient/trunk/src/main/java/org/apache/http/client/benchmark/ApacheHttpClient.java

Реально ли добиться скорости 200 доменов в секунду, и если да, то как оптимизировать код?

Автор: Stolzen 19.5.2014, 17:35
Сделайте 10 потоков и посмотрите, будет ли лучше. Прирост должен быть, но, возможно, не в 10 раз

Автор: CSharpProgrammer 19.5.2014, 19:23
Цитата(Stolzen @ 19.5.2014,  17:35)
Сделайте 10 потоков и посмотрите, будет ли лучше. Прирост должен быть, но, возможно, не в 10 раз

Оптимальное кол-во потоков получается - 50 (примерно 20 доменов в секунду), увеличение кол-ва потоков приводит к частому выпадению ошибок и не приводит к увеличению скорости. 

Код

java.net.SocketException: Socket Closed
java.net.SocketException: Socket operation on nonsocket: connect


Как же все таки добиться скорости 200 доменов в секунду и более?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)