VB.Net HTTPWebRequest Скорость медленно сравнивает Python URLOpen - PullRequest
0 голосов
/ 12 февраля 2011

Привет, я пишу сканер, который будет сканировать сайты и выборочно анализировать различные разделы веб-сайта.

Я разработчик .Net, поэтому выбор был очевиден, что я сделал это в .Netно скорость была очень медленной, что включало загрузку и разбор HTMLPages

Затем я попытался просто загрузить содержимое, сначала используя .Net, а затем те же домены, используя python, но python был очень впечатляющим в загрузке данных.Я достиг загрузки с использованием Python, но последующая часть не так проста в кодировании на Python, что, очевидно, я не хочу делать.

Тот же пакет домена, который занимал 100 секунд в Python, занимал 20 минутв .Net crawler

Я пытался http://www.eqlit.com/ загрузить и за 8 секунд в Python, и то же самое занимало 100 секунд в .Net crawler

У кого-нибудь есть идеи?почему это медленно в .Net, но быстро в python?

1 Ответ

2 голосов
/ 12 февраля 2011

HttpWebRequest ограничен 2-мя подключениями одновременно, поэтому, если вы загружаете контент вместе с html (например, изображения, таблицы стилей, js и т. Д.) Или используете несколько потоков, вы достигнете предела подключения.1001 *

вам нужно изменить настройки в ServicePointManager.

http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit.aspx

По этой ссылке объясняется, что вам нужно сделать.http://blogs.msdn.com/b/jpsanders/archive/2009/05/20/understanding-maxservicepointidletime-and-defaultconnectionlimit.aspx

вы также можете установить эти настройки, пока вы на нем.

ServicePointManager.UseNagleAlgorithm = true;
ServicePointManager.Expect100Continue = true;
ServicePointManager.CheckCertificateRevocationList = true;
ServicePointManager.DefaultConnectionLimit = 10; // for example

Другой способ - использовать файл конфигурации для вашего приложения и использовать следующее

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="10"/>
    </connectionManagement>
  </system.net>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...