[C/C++] Performanceproblem mit TIdHTTP (Indy-Client)

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von bonsai, 24. Januar 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 24. Januar 2007
    Performanceproblem mit TIdHTTP (Indy-Client)

    Hi, ich mal wieder .. xD

    Habe ein kleines Performanceproblem mit der Indy-Client-Komponente TIdHTTP (Indy 9). Da ich mich nur wenig mit den Indy-Komponenten auskenne und selten damit arbeite, wollt ich hier mal nachfragen ob jemand weiß wie man die Performance verbessern kann.

    Das Proggi was ich grad bastel hat atm 30 Threads, welche alle den gleichen Link mit unterschiedlichen Variablen aufrufen.

    Beispiel (für 2 Threads)

    Code:
    http://www.test.de/index.php?action=test&set=n1
    [URL="http://www.test.de/index.php?action=test&set=px"]http://www.test.de/index.php?action=test&set=px[/URL]
    Jeder Thread hat seine eigene TIdHTTP-Komponente - also dürfte das nicht das Problem sein.

    Beispiel:

    Code:
    TIdHttp01->Get(...);
    TIdHttp02->Get(...);
    ...
    Wenn ich einen Thread laufen lasse, ruft dieser den Link durchschnittlich 2,7 mal pro Sekunde auf. (Hab ne Anzeige drinne) => dabei hab ich pro Sekunde nen Upload von 5 bit und nen download von 15 bit.

    Jetzt zum Problem:
    Je mehr Threads ich nutze, umso geringer ist der Durchschnittswert pro Sekunde für den einzelnen Thread.
    => theoretisch:
    1 Thread = 2.7
    10 Threads = 27
    => praktisch:
    1 Thread = 2.7
    10 Threads = 21
    (Werte immer pro Sekunde)

    bei 30 komm ich so gradmal auf 40 / sek. ...
    Außerdem schwankt der Download / Upload mit zunehmender Threadzahl immer mehr!

    Wichtig: Die Prozessorauslastung ist die meiste Zeit auf 0% und schwankt teilweise bis max. 3%!

    ---

    Ich hoffe ihr versteht was ich meine!? ^^

    Meine Fragen sind also:
    - Liegt das Performanceproblem an der Indy-Komponente oder liegt es einfach nur an den Threads (mehr als 16 werden ja, zumindest bei größeren Aufgaben, nicht empfohlen.)?
    - Welche Möglichkeiten gibt es um die Performance vielleicht noch etwas zu verbessern oder das Problem ganz zu lösen?

    THX für jede Hilfe - Bewertung ist selbstverständlich!


    MfG bonsai
     
  2. 25. Januar 2007
    AW: Performanceproblem mit TIdHTTP (Indy-Client)

    Wollt ihr mir nicht antworten, oder habt ihr einfach nur genauso wenig Plan von der Sache wie ich? ^^
    (ich denke mal eher letzteres ..)

    Also wäre gut, wenn sich noch jemand melden würde, der mir helfen kann. Bin derzeit am durchforsten der GougleGroups Suchergebnisse.


    MfG bonsai

    p.s.: *push* ^^
     
  3. 26. Januar 2007
    AW: Performanceproblem mit TIdHTTP (Indy-Client)

    erm dass das weniger zuwachs gibt wenn du mehr threads startest ist doch klar das OS muss ja immer umschalten.
    Ich kann dir mal sagen wie ich meins machen würde:
    Ich würd einen thread für die anzeigen machen und nen zweiten für das senden dafür aber die routinen vom OS nehmen bei windows hier kleines tut. Sind imho schneller und dann eben noch kurz das http protokoll lernen rfc2616
    Dann must nur noch die ganze zeit anfragen an den server schicken.
    Meiner Meinung nach ist das nicht so kompliziert und arbeitsaufwendig. Wenns dir trotzdem zuviel ist musst wohl mit dem geschwindigkeits abfall klarkommen.

    mfg tobZel
     
  4. 26. Januar 2007
    AW: Performanceproblem mit TIdHTTP (Indy-Client)

    @tobZel:

    THX für die Antwort! Werd mir das wohl mal angucken, da es ja wahrscheinlich wirklich an den Threads liegt. Hoffentlich wird das mit den Sockets nicht zu kompliziert, bin ja auf diesem Gebiet noch ne 0 ... ^^

    MfG bonsai

    *edit*
    Mit den Sockets hab ich das jetzt zum laufen gebracht, allerdings kann ich damit nicht das machen was ich will - jedenfalls nicht mit dem Speed den ich brauch.
    Bin daher wieder bei den Threads gelandet und hab mal bisschen in der Hilfe nachgelesen und die Funktionen eines Threads getestet.

    Könnte sein das ich die Performance bisschen verbessern konnte. Muss aber noch alle Threads anpassen und werd dann hier nochmal was dazu schreiben.
    */edit*
     
  5. 28. Januar 2007
    AW: Performanceproblem mit TIdHTTP (Indy-Client)

    So ... hab die Geschwindigkeit der threads jetzt auf nem relativ gutem Niveau.
    Ist nicht ganz das was ich mir erhofft habe, aber es muss wohl reichen. :tongue:

    ---

    Thema kann geclosed werden!


    MfG bonsai
     
  6. 28. Januar 2007
    AW: Performanceproblem mit TIdHTTP (Indy-Client)

    [X] Erledigt

    Btw. Closen kannste auch selber

    Dicht

    Knusperkeks
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.