vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
HttpWebRequest zu langsam? 
Autor: silu
Datum: 03.10.11 08:20

Moin zusammen,

ich arbeite zur Zeit an einer Anwendung, die selbstständig einige Websites abgrasen und Informationen daraus gewinnen soll. Dabei stoße ich jedoch auf das Problem, dass die Zugriffe per HttpWebRequest für meinen Geschmack ein bisschen lange dauern. Einfach mal zur Verdeutlichung:

    Sub Main()
 
        Dim req As HttpWebRequest
        Dim resp As HttpWebResponse
 
        req = HttpWebRequest.Create("http://www.photobucket.com")
        req.Proxy = Nothing
 
        Try
 
            Dim zeitA As Date = System.DateTime.Now
            resp = req.GetResponse()
            Console.WriteLine(CInt(System.DateTime.Now.Subtract( _
              zeitA).TotalMilliseconds))
 
        Catch ex As Exception
 
        End Try
 
        Console.ReadKey()
 
 
 
    End Sub
Das ganze bewegt sich bei mir so um 2000-2100ms, also grob gesagt 2 Sekunden. Da frag ich jetzt einfach mal ganz stumpf, ob das tatsächlich die Zeit ist, die ich pro Zugriff zugestehen muss, oder ob da noch irgendwo ein bremsendes Element drin steckt?

Danke für die Auskunft.
- silu
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: HttpWebRequest zu langsam? 
Autor: ModeratorDaveS (Moderator)
Datum: 03.10.11 09:44

Es ist anzunehmen, dass HttpWebRequest die Windows Http ApI und TCP/IP Stack verwendet wie auch Internet Explorer. Es kommt darauf an wie schnell die Namensauflösung und Http Abfrage erledigt werden, was von Geschwindikeit des Gesamtnetzwerks abhängt, da du schon die Proxysuche ausgeschaltet hast. Außerdem ist die erste Abfrage meistens wesentlich länger. Ich habe deinen Code etwas umgeschrieben
        Dim req As HttpWebRequest
        Dim resp As HttpWebResponse
        Dim sw As New Stopwatch
 
        Dim last As Long
        sw.Start()
        For i = 1 To 10
 
            'req = HttpWebRequest.Create("http://www.photobucket.com")
            req = HttpWebRequest.Create("http://www.google.com")
            req.KeepAlive = False
            req.Proxy = Nothing
 
            Try
                resp = req.GetResponse()
                Dim strm As IO.Stream = resp.GetResponseStream()
                'Debug.WriteLine(New IO.StreamReader(strm).ReadToEnd())
                strm.Close()
                resp.Close()
            Catch ex As Exception
                Debug.WriteLine(ex.Message)
            End Try
 
            Console.WriteLine("Request: " & (sw.ElapsedMilliseconds - _
              last).ToString())
            last = sw.ElapsedMilliseconds
        Next
 
        sw.Stop()
        Console.WriteLine("Total: " & sw.ElapsedMilliseconds.ToString())
        Console.ReadKey()
Die Ergebnisse für Photobucket:
Request: 3625
Request: 1765
Request: 1778
Request: 1628
Request: 1673
Request: 1635
Request: 1619
Request: 1667
Request: 1648
Request: 1691
Total: 18750
Durchschnittlich 1,875 Sekunden. Dagegen für google.com:
Request: 2671
Request: 367
Request: 338
Request: 329
Request: 320
Request: 297
Request: 309
Request: 337
Request: 300
Request: 337
Total: 5622
Das ist durchschnittlich 562 Millisekunden (die erste Abfrage braucht ca 6 Mal so viel Zeit).

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel