Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#14

Re: An Netzwerkprofis: Datendurchsatz??

  Alt 19. Jul 2004, 12:25
Zitat von Vjay:
Würde es nicht sogar schon die CPU-Leistung killen soviele Daten zu erzeugen bzw an die Netzwerkkarte zu transferieren?

Stell mir gerade ne whileschleife mit indy.sendbuffer oder so vor ^^ die so 100mb die sekunde rüberschieben soll.
Die Daten müssen ja nicht erzeugt werden. Man braucht ja nur einmal einen Buffer mit 32kB reservieren und diesen Buffer unverändert mit indy.WriteBuffer rausblasen.
Natürlich braucht dies eine gewisse CPU-Leistung, aber man kann sich ja auch nicht duschen und verlangen nicht nass zu werden.

Delphi-Quellcode:
// Hier die Quick & Dirty Messung
// bei meinem 10MBit-Ethernet komme ich auf einen Durchsatz von ~ 1100 kByte/s
procedure TForm1.Button1Click(Sender: TObject);
var
   t1, t2 : TDateTime;
   bc : Integer;
var
   i, kb, bufsize : Integer;
   s : string;
begin
   bufsize := 8096;

   SetLength(s, bufsize);
   bc := 100;

   IdTCPClient1.Connect;
   t1 := Now;
   for i := 1 to bc do
   begin
      IdTCPClient1.WriteBuffer(s[1], bufsize);
   end;
   IdTCPClient1.Disconnect;

   kb := bufsize div 1024 * bc; // Anzahl in kilobytes
   t2 := Now-t1;
   t2 := t2 * 60.0 * 60.0 * 24.0; // Zeit in Sekunden

   Edit1.Text := IntToStr(Round(kb / t2));
end;
Andreas
  Mit Zitat antworten Zitat