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

  • apenney888

    apenney888

    27 EKİM 2010
  • iNCH

    iNCH

    20 Temmuz 2009
  • Sorikan

    Sorikan

    3 ŞUBAT 2008