![]() |
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:
Das funktioiert auch. nur folgendes problem: mach ich das über firefox, speichert er das xml (~55MB) sehr flott.
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; 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 |
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.
|
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 ( ![]() Gruss Hinnack |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz