Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Indy TCP Server nur max ~100mal instanziierbar ?

  Alt 10. Mai 2004, 20:56
Hi supermuckl,

ich denke schon das Dein Problem an den Threads liegt, denn
jeder IdTCPServer ist dafür designd um Multi-Threaded viele Connections zu behandeln,
d.h. das jede Serverinstanz ein gewissenheit Overhead benötigt;
z.B. ist eine der privaten Variablen des IdTCPServers
FThreads: TThreadList;
ist und wenn Du den Constructor von TThreadList etwas näher anschaust wirst Du feststellen, das
jede ThreadList widerrum
FLock: TRTLCriticalSection;
verwendet.

Darum ist klar das Du 1000 TThread Instanzen nicht mit 1000 TIdTCPServer Instanzen vergleichen kannst, weil zusätzlich noch jeweils 1000 CriticalSections erzeugt werden; denn restlichen Overhead nicht mit betrachtet.

Natürlich kannst Du auch 1000 TidICMP Instanzen erzeugen, weil da nicht der Overhead zur Threadverwaltung benötigt wird.

Die Lösung deines Problems hast Du selber schon genannt:
Einfach weniger Instanzen erzeugen und nach und nach alle Ports durchgehen.

Zitat:
also wieso zum geier hat der kack so eine beschränkung drinne o_O *nixblick*
Die Leute von "nevrona" haben ganz umsonst die Komponenten entwickelt, wie würdest Du das finden, wenn du Dich jahrelang um die Entwicklung und Pflege eines Produktes kümmerst und damit eine der besten "Internet-Komponenten-Sammlung" geschaffen hast und
dann kommt jemand des Weges der die Arbeit als selbstverständlich hinnimmt und sie auch noch beschimpft ?
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat