Einzelnen Beitrag anzeigen

AJ_Oldendorf

Registriert seit: 12. Jun 2009
440 Beiträge
 
Delphi 12 Athens
 
#29

AW: schnelle Server Client Verbindung ohne Verluste

  Alt 7. Apr 2025, 11:13
Also beim Server, habe ich das Senden in einem Thread jetzt so ausgelagert:

Delphi-Quellcode:
var
  SendMsg : PAnsiString;
  Daten : AnsiString;
  outMsg : TIdBytes;

...
if ClientContext.Connection.Connected then
begin
  while (Sendeliste.Count > 0) do
  begin
    var sw4 := TStopwatch.StartNew;
    var t4 : Int64;

    SendMsg := Sendeliste.Items[0];
    Daten := SendMsg^;

    SetLength(outMsg, Length(Daten));
    Move(Daten[1], outMsg[0], Length(Daten));

    t4 := sw4.ElapsedMilliseconds; //Zeitmessung stoppen
    //Zeitmessung 01 auswerten

    sw4 := TStopwatch.StartNew; //Zeitmessung starten

    ClientContext.Connection.IOHandler.Write(outMsg);

    t4 := sw4.ElapsedMilliseconds; //Zeitmessung stoppen
    //Zeitmessung 02 auswerten

    sw4 := TStopwatch.StartNew; //Zeitmessung starten

    Dispose(SendMsg);
    Sendeliste.Delete(0);

    t4 := sw4.ElapsedMilliseconds; //Zeitmessung stoppen
    //Zeitmessung 03 auswerten
  end;
end
Zeitmessung 02 schlägt regelmäßig zu, 300ms ist normal (pro Aufruf), manchmal sogar länger.
Hast du eine Idee dazu?

Das ReadEvent habe ich über ein Merker geblockt, sodass in dem Moment kein Schreiben möglich ist. Da findet also in dem Moment nichts statt.
  Mit Zitat antworten Zitat