- Регистрация
- 15.03.2015
- Сообщения
- 72
- Благодарностей
- 13
- Баллы
- 8
Всем привет.
Реализовываю Keepalive через форк xNet: Leaf.xNet.
Для сравнения стандартного стандартного варианта ZennoPoster.HttpGet и варианта с библиотекой HttpRequest создал два цикла. Результат у Zennoposter стабильно лучше на пару две-три секунды за 10 запросов подряд.
Также сравнил HttpRequest c KeepAlive=True и KeepAlive=False. Разницы во времени обработки десяти запросов никакой.
Вопрос: верно ли я использую запрос с KeepAlive? Если да, то почему ZennoPoster.HttpGet обгоняет его? Или я использую KeepAlive неверно, а ZennoPoster.HttpGet как раз и использует по умолчанию KeepAlive?
Реализовываю Keepalive через форк xNet: Leaf.xNet.
Для сравнения стандартного стандартного варианта ZennoPoster.HttpGet и варианта с библиотекой HttpRequest создал два цикла. Результат у Zennoposter стабильно лучше на пару две-три секунды за 10 запросов подряд.
Также сравнил HttpRequest c KeepAlive=True и KeepAlive=False. Разницы во времени обработки десяти запросов никакой.
Вопрос: верно ли я использую запрос с KeepAlive? Если да, то почему ZennoPoster.HttpGet обгоняет его? Или я использую KeepAlive неверно, а ZennoPoster.HttpGet как раз и использует по умолчанию KeepAlive?
Код для теста:
// Предварительно требуется добавить библиотеку Leaf.xNet.dll
string url = "http://yandex.ru";
string response = "" ;
project.SendInfoToLog(DateTimeOffset.UtcNow.ToString()) ;
//=============================
// KeepAlive=true
using (HttpRequest request = new HttpRequest())
{
request.KeepAlive = true ;
for ( int i=1 ; i<=10 ; i++ )
{
response = request.Get(url).ToString() ;
}
}
project.SendInfoToLog(DateTimeOffset.UtcNow.ToString()) ;
//=============================
// KeepAlive=false
using (HttpRequest request = new HttpRequest())
{
request.KeepAlive = false ;
for ( int i=1 ; i<=10 ; i++ )
{
response = request.Get(url).ToString() ;
request.Close();
}
}
project.SendInfoToLog(DateTimeOffset.UtcNow.ToString()) ;
//=============================
// Стандартный метод Zenno
for ( int i=1 ; i<=10 ; i++ )
{
response = ZennoPoster.HttpGet(url, "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody);
}
project.SendInfoToLog(DateTimeOffset.UtcNow.ToString()) ;
//project.SendInfoToLog( i.ToString() + " " + response ) ;
Вложения
-
171,4 КБ Просмотры: 29