Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[erledigt] Webseite auslesen: Erster Aufruf dauert immer 4x so lang wie danach
ArnoNuehm
myCSharp.de - Member



Dabei seit:
Beiträge: 47

Themenstarter:

[erledigt] Webseite auslesen: Erster Aufruf dauert immer 4x so lang wie danach

beantworten | zitieren | melden

Guten Morgen,

einen frohen 2. Advent wünsche ich.

Ich lese hier eine Webseite aus und parse den Quelltext.

Das Problem was ich habe ist, wenn ich das Programm starte und die Seite auslese, dauert das ganze so um die 34 Sekunden.
Stosse ich danach erneut das auslesen an, dauert es zwischen 6 und 11 Sekunden.

Hier mal der Code den ich dazu benutze...


            WebClient client = new WebClient();
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.Load(client.OpenRead("http://domain.de"), Encoding.UTF8);
            HtmlNode rootNode = doc.DocumentNode;
            HtmlNodeCollection results = rootNode.SelectNodes("//div");
....

Ich habe auch mal probiert folgendes vorher zu setzen...


            System.Net.ServicePointManager.UseNagleAlgorithm = true;
            System.Net.ServicePointManager.Expect100Continue = false;

Brachte keine Änderung.

Eine Idee??
Gruß

Arno
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

Hallo,

in welcher Zeile genau hängt er diese 34 Sekunden laut Debugger ?
Wieso nutzt Du nicht direkt


HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("http://www.domain.de");

Gruß
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

beantworten | zitieren | melden

Hi Abt...

HtmlWeb hab ich noch nie gehört, ist das eine Klasse aus dem Framework??
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

Hi,

laut deren Dokumentation schon.

Gruß
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
ArnoNuehm
myCSharp.de - Member



Dabei seit:
Beiträge: 47

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
in welcher Zeile genau hängt er diese 34 Sekunden laut Debugger ?

Wie kann ich das feststellen?
Aktuell stoppe ich nur die Zeit vom Anfang bis zum Ende.
Gruß

Arno
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

Mit dem Debugger durch-steppen...
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
ArnoNuehm
myCSharp.de - Member



Dabei seit:
Beiträge: 47

Themenstarter:

beantworten | zitieren | melden

Wie es aussieht dauer es hier so lang...

doc.Load(client.OpenRead("http://domain.de"), Encoding.UTF8);
Gruß

Arno
private Nachricht | Beiträge des Benutzers
7.e.Q
myCSharp.de - Member

Avatar #avatar-3402.jpg


Dabei seit:
Beiträge: 938
Herkunft: Scheeßel

beantworten | zitieren | melden

Hmm... nur so ein Gedanke. Mal probiert, den Aufruf über die IP zu machen, statt über die Domain? Vielleicht ist es der DNS Server, der so lange für die Namensauflösung braucht. Just my two cents...
private Nachricht | Beiträge des Benutzers
Darth Maim
myCSharp.de - Member



Dabei seit:
Beiträge: 230

beantworten | zitieren | melden

Oder mal versucht den client.Proxy auf null zusetzen?

Darthmaim
private Nachricht | Beiträge des Benutzers
ArnoNuehm
myCSharp.de - Member



Dabei seit:
Beiträge: 47

Themenstarter:

beantworten | zitieren | melden

Das mit dem DNS ist sehr unwahrscheinlich, da die Seite sonst problemlos aufzurufen ist und nach dem ersten mal auch das ganze schneller abläuft.

Hab es aber trotzdem probiert, ohne Erfolg.

Das mit dem Proxy hat ebenfalls nichts gebracht.

Was mich eben sehr stutzig macht, ist die Tatsache das es nur beim ersten mal nach Programmstart so lang dauert.
Danach läuft es ja zügiger.
mit den 6 - 11 Sekunden kann ich ja leben.
Gruß

Arno
private Nachricht | Beiträge des Benutzers
ArnoNuehm
myCSharp.de - Member



Dabei seit:
Beiträge: 47

Themenstarter:

beantworten | zitieren | melden

Hat sich erledigt.

Es war der Proxy.

Ich habe eine zweite Methode in der ersten aufgerufen mit der ich Unterseiten auslese.
Dort hatte ich vergessen das client.Proxy = null; zu setzen wie es vorgeschlagen wurde.

Vielen Dank für die Hilfe !
Gruß

Arno
private Nachricht | Beiträge des Benutzers