2012-12-27 4 views
5

Ich arbeite an einer Client/Server-Anwendung. Ich habe viele Artikel dafür bereit und fand eine sehr allgemeine Aussage, dass "Creation/deletion of socket is very expensive process in terms of using system resources". Aber nirgendwo wird erklärt, wie viel Ressourcen verbraucht werden.
Kann jemand Einblick darauf geben?Ist Socket-Erstellung-Löschung sehr teurer Prozess?

+1

Sie lesen wahrscheinlich ein altes Buch. Die Socket-Erstellung benötigt nur Speicher für Kernel-Socket-Datenstrukturen. –

Antwort

5

Erstellen Steckdose ist billig. Durch das Verbinden wird tatsächlich die Verbindung hergestellt, die mehr oder weniger teuer ist als das Erstellen der zugrunde liegenden Verbindung, insbesondere der TCP-Verbindung. TCP-Verbindungsaufbau erfordert die dreifachen TCP-Handshake-Schritte. Verbindungen live zu halten, kostet hauptsächlich Speicher und Verbindungen. Netzwerkverbindungen sind eine Ressource, die von den Betriebssystemen begrenzt wird (z. B. Anzahl der Sockets an einem Port).

Wenn Sie Thread-Modell verwenden, sind zusätzliche Thread-Erstellungsressourcen erforderlich.


ich eine nützliche wie auf Ihre Antwort „Network Programming: to maintain sockets or not?“ auf Stackoverflow finden konnten. Und ein nützlicher Artikel Boost socket performance on Linux

Ich denke, hilfreich für Sie.