Thema: Delphi Spielwiese - SocketTest

Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: Spielwiese - SocketTest

  Alt 11. Okt 2016, 22:16
Jetzt könnte man natürlich auf den blockierenden Modus umstellen, aber dann kann ich ja auch bei den Indys bleiben, mit denen ich eine funktionierende Kommunikation schon im Griff hatte.
Ich hatte mir nur gedacht, dass ich mit den nicht blockierenden Sockets performanter bin und halt ohne pulls auskomme.

Schicken die non blocket sockets eigentlich interne Pulls und erzeugen letztlich auch eine Last auf dem Netzwerk und der CPU?
Oder sind Pulls aller 1/2 Sekunde von den Clients schon teurer?
Von der Performance her sind die non-blocking Sockets sogar geringfügig langsamer, weil dort alle Events über Window-Messages getriggert werden, die zuerst den kompletten Weg durch die MessageQueue nehmen müssen. Das Pullen von blocking Sockets ist sehr sparsam was CPU Last angeht. Windows regelt die kompletten Synchronisationsmechanismen im Kernel, weshalb zwar einmalig ein Context-Switch stattfinden muss, aber danach bekommt der entsprechende Thread vereinfacht ausgedrückt einfach keine CPU-Zeit vom Scheduler mehr zugeteilt, bis neue Daten vorliegen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat