AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IdHttp.Get & Geschwindigkeit

Ein Thema von G-Baumstamm · begonnen am 18. Mai 2012 · letzter Beitrag vom 19. Mai 2012
Antwort Antwort
G-Baumstamm

Registriert seit: 9. Jan 2010
63 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: IdHttp.Get & Geschwindigkeit

  Alt 18. Mai 2012, 16:04
Ein TidHTTP.Get() ist wenigstens nicht pauschal um den Faktor 5 langsamer, da muss also irgendwo noch der Wurm drin sein - den Du aber meiner Ansicht leichter entdecken wirst, wenn Du Dich vorerst von Threads fern hältst.
Ich habe nochmal versucht das ein bisschen einzugrenzen, wahrscheinlich liegt es doch am Server. Im Schnitt dauert die Verarbeitung etwa 2,5 Sekunden (was in etwa mit dem FF vergleichbar ist, er zeigt die Seite zwar relativ schnell an, bis das Laden-Symbol weggeht könnten es aber tatsächlich 2 Sekunden sein), allerdings gibt es hin und wieder Einbrüche, so dass das Laden 5-6 Sekunden dauert, das ist aber wahrscheinlich dann serverseitig ...

Es sei denn du hast das nicht ordentlich gekapselt und greifst auf GUI-Elemente in deinen Download-Funktionen zu. Das wiederum macht weder ohne noch mit Threads Sinn. Und im Thread knallt es dann, wenn du unsynchronisiert zugreifst.
Wo der Mann Recht hat, hat er Recht ... mir war nicht klar, dass man über andere Threads nicht auf die GUI zugreifen kann, und ShowMessage auch kein gutes Tool zur Fehlerbehebung in Threads ist ...

Hab jetzt nur die tatsächliche Problem-Prozedur im Thread & damit gehts ohne Fehler. Frage wäre jetzt nur noch, wie ich herausfinde, wenn der Thread fertig ist, im Moment setze ich am Ende des Executes ne Variable auf true, und habe im anderen thread ne while-Schleife, die so lange sinnlos herumrattert bis die Variable true ist ... das geht doch bestimmt noch eleganter.
Daniel NR
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: IdHttp.Get & Geschwindigkeit

  Alt 18. Mai 2012, 16:08
Wenn du so was machst, dann nimm eine Messagebox oder nimm Writeln, dann musst du nicht immer Klicken. aber wenn man einen Thread erstellt, steht doch oben im Kommentar, dass man nur mit Synchronize auf die GUI zugreifen darf.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#3

AW: IdHttp.Get & Geschwindigkeit

  Alt 18. Mai 2012, 17:33
Edit: gelöscht
Dachte zuerst Messages wären eine Lösung aber du willst ja von Thread zu Thread Statusmeldungen senden.
I love DiscCat

Geändert von busybyte (18. Mai 2012 um 18:02 Uhr)
  Mit Zitat antworten Zitat
G-Baumstamm

Registriert seit: 9. Jan 2010
63 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: IdHttp.Get & Geschwindigkeit

  Alt 19. Mai 2012, 11:26
Heyhey,

schön wie sich manchmal eins zum anderen fügt.

Das Problem mit der Status-Meldung nach Beendigung des Threads habe ich jetzt einfach so gelöst, dass das was nach Beendigung des Threads geschehen soll, im OnTerminate des Threads gestartet wird, damit spart man sich die unnötig auf Hochtouren arbeitende Schleife

Das Beste ist aber, dass das ganze sogar eine Lösung für das Ausgangsproblem mit der langen Bearbeitungsdauer von IdHttp.Get geliefert hat: Ich starte jetzt einfach parallel für jede meiner 10 Anfragen einen Thread, dadurch geht die einzelne Anfrage natürlich auch nicht schneller, durch das Multithreading ist die Gesamtlaufzeit aber von ~60-90 Sekunden auf ~15 Sekunden gesunken, was natürlich nen riesiger Gewinn für mein Programm ist

Danke für eure Hilfe Jungs !
Daniel NR
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 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 by Thomas Breitkreuz