Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc
Titulní Blogy Fotky Soubory

Martinowo

Technologie, zajímavosti a .NET

.NET WebRequest versus vlastní implementace

Řešení komunikace HTTP byl další oříšek, který jsme rozlouskávali pro projekt nového vyhledávání na Atlas.cz. Na výběr a pro testování jsme postavili vedle sebe 3 možnosti komunikace s HTTP:

  • .NET WebRequest
  • vlastní implementace HTTP komunikace, postavená na TcpClient
  • URL (na HTTP modul dále navazuje XmlReader, jedna z možností jeho použití je přímé zadání URL)

WebRequest jsme vylepšili o nastavení :

// pocet limitu spoju TCPIP (zaslal: Michal Bláha)
ServicePointManager.DefaultConnectionLimit = 10;

S vlastní implementací trošku hořela půda pod nohama, bylo potřeba vyřešit některé komplikace.
Následující výčet je "zpovědnicí utrpení" a překážek :

  • kodování zaslaných stránek, WebRequest dělá vždy docela OK, tady je to na Vás
  • komplikace se sestavením hlavičky HTTP (zejména asi v tomto případě, protejší strana Apache, Linux)
  • nutnost "odseknout" hlavičku HTTP od obsahu, tzn. že není možné použít přímé čtení toku - Stream a cele to jednorázově prohnat přes XmlReader, používám StringBuilder, uřezání hlavičky a pak čtení XML proti výslednému řetězci (asi by ještě šlo lépe udělat ... :) )

Výsledek rychlostních testů

Testy byly prováděný proti jednoduché .aspx stránce, kde se OnPageLoad 2x dotázala na cílovou URL, četla XML a vypsala počet nalezených položek v každém čtení. Metodika není zajímavá z hlediska výkonu, ale celkového porovnání, jak na tom ta, která implementace je :

  • .NET Socket - WebRequest : 131 pages/s, celkem za 1 minutu: 8408
  • vlastní implementace : 108pages/s, celkem za 1 minutu: 7400
  • URL - .NET XmlReader : 123 pages/s, celkem za 1 minutu: 8027

Prostředí : Windows XP Pro, PIV 2.8 GHz, 1 GB RAM, Web server z XP Pro, 2 vlákna proti ASP.NET aplikaci

Vyhrál tedy .NET a jeho implementace, uvidíme, jak si poradí při testování na IIS a Windows Serveru a pak při extrémní zátěži v reálném provozu.

Zveřejněno 2. června 2004 9:27 by martin

Komentář

Žádné komentáře
Neregistrovaní uživatele nemužou přidávat komentáře.
Powered by Community Server (Personal Edition), by Telligent Systems
Vyvojar.cz na prodej!