Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi indy getHttp dauert ewig im vergleich zum aufruf aus browser (https://www.delphipraxis.net/103486-indy-gethttp-dauert-ewig-im-vergleich-zum-aufruf-aus-browser.html)

maz 16. Nov 2007 12:36


indy getHttp dauert ewig im vergleich zum aufruf aus browser
 
hallo leute!
ich rufe über einen indy http client eine seite auf (perl script das ein xml file ausspuckt) und dieses file speichere
ich dann. (Delphi7)

Delphi-Quellcode:
fcontent:=tmemorystream.Create;
fcontent.Clear;
id:=Tidhttp.Create(application); //indy http client create
id.RecvBufferSize:=80000000;
id.InputBuffer.SetSize(80000000);
id.Get(URL,FContent);
fcontent.SaveToFile(saveas);
id.Destroy;
Das funktioiert auch. nur folgendes problem: mach ich das über firefox, speichert er das xml (~55MB) sehr flott.
Im "networking" tab des win-taskmanagers sieht man auch wie die auslastung auf ~5% hochschnellt. wenn ich das nun über mein programm mache (genau der selbe request string) dann dauert das sehr lange und man sieht auch das die "networking" auslastung gerade mal so um 0.5% schwankt.
Wie man sieht hab ich schon probiert den recieve indy-buffer höher zu drehen, auch habe ich das ganze in einen task ausgelagert der mit high priority läuft. alles ohne erfolg.

bin dankbar für jeden tipp, wie ich das schneller machen kann.
mm

Zacherl 16. Nov 2007 12:51

Re: indy getHttp dauert ewig im vergleich zum aufruf aus bro
 
Könnte dir höchstens raten, die Verbindung über normale TCP Komponenten herzustellen und die GET Header manuell zu schicken.

hinnack 17. Nov 2007 16:11

Re: indy getHttp dauert ewig im vergleich zum aufruf aus bro
 
hi,

ich habe das gleiche Problem - dachte jedoch bisher, das mein Flaschenhals die synchrone statt asynchrone
Verarbeitung meines Streams wäre...
meine Anwendung ist höchstens halb so schnell wie WinInet (IE) - hatte bisher aber keine Zeit
dem wirklich auf den Grund zu gehen.
wenns schnell gehen muss: nimm entweder die WinInet API selbst oder die Download-Komponente von EmbeddedWB
(http://www.bsalsa.com)

Gruss

Hinnack


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz