Einzelnen Beitrag anzeigen

samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#14

AW: TIdTCPServer & TIdTCPClient - Verschiedene Fragen

  Alt 23. Aug 2010, 22:21
Die maximale Threadanzahl (pro Prozess) ist nicht vom physikalischen Speicher abhängig sondern vom virtuellen Adressraum. Ein Thread belegt den Speichern nicht wirklich, sondern er belegt nur den Adressraum. Erst wenn der Stack tatsächlich benutzt wird, wird physikalischer Speicher verwendet. Siehe dazu auch:

http://msdn.microsoft.com/en-us/libr...74(VS.85).aspx
http://blogs.technet.com/b/markrussi...8/3261309.aspx

Ich habe beim Linker die Max. Stackgröße gegenüber dem Standardwert halbiert ($80000) und bekomme dann mit dem Testprogramm von Win32 doppelt soviele Verbindungen (rund 4000).
Wenn ich die Max Stackgröße auf 65536 heruntersetzt, steigt die Anzahl der Verbindungen unter XP nicht weiter an, weil XP anscheinend nur die Ports 1025..5000 (=>3976 mögliche Verbindungen) belegt. Bei W7-64 werden nach meinen aktuellen Untersuchungen die Ports 49155..65535 belegt. Hier bekomme ich dann 6019 gleichzeitige Verbindungen.
D.h. abweichend von meiner ersten Antwort, ist mein jetziger Kenntnisstand: Die maximale Anzahl der gleichzeitigen Serververbindungen ist durch die maximale Anzahl der gleichzeitigen Threads und die Anzahl der belegbaren Ports begrenzt.

Geändert von samso (24. Aug 2010 um 10:41 Uhr)
  Mit Zitat antworten Zitat