SORU
25 Mart 2010, PERŞEMBE


HttpWebRequest çok yavaş!

Açık kaynak kodlu bir kütüphane benim web sunucusu bağlanmak için kullanıyorum. Web sunucusu çok yavaş gidiyordu endişelendim ve sonra Ruby basit bir test yapmaya çalıştım ve bu sonuçları aldım

Ruby program: 10 HTTP 2.11 saniye Alır

Ruby program: 100 18.13 saniye HTTP Alır

C# kütüphanesi: saniye 10 HTTP 20.81 Alır

C# kütüphanesi: 36847.46 saniye için 100 HTTP Alır

Profilli var ve sorun bu işlevi bulundu:

private HttpWebResponse GetRawResponse(HttpWebRequest request) {
  HttpWebResponse raw = null;
  try {
    raw = (HttpWebResponse)request.GetResponse(); //This line!
  }
  catch (WebException ex) {
    if (ex.Response is HttpWebResponse) {
      raw = ex.Response as HttpWebResponse;
    }
  }
  return raw;
}

Çizgiye ruby program yapma isteği 1 .3 saniye sürer ise kendisi tarafından tam 1 saniye içinde alır. Ayrıca ağ bant genişliği bir sorun değil yani 127.0.0.1, bütün bu testleri yapıyorum.

Bu büyük yavaşlamasına sebep ne olabilir?

GÜNCELLEME

Değişti kıyaslama sonuçlarına göz atın. Ben aslında 10 Alır ve 100, sonuçları güncelleme ile test ettik.

CEVAP
30 AĞUSTOS 2010, PAZARTESİ


Yavaş web istekleri ile ana suçlu bulduk ne proxy özelliği. Eğer bu özelliği daha önce null olarak ayarlayın eğer sorgu proxy otomatik algılama adım atlar GetResponse yöntemi çağrısı:

request.Proxy = null;
using (var response = (HttpWebResponse)request.GetResponse())
{
}

Proxy otomatik Algıla 7 saniye yanıt dönmeden önce sorguya çekiyordu. Bu özellik HttpWebRequest nesnesi için varsayılan olarak ayarlanmış biraz can sıkıcı bir durum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Wills

    David Wills

    31 Aralık 2007
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • TomSka

    TomSka

    30 Mayıs 2006