Frage

Ich habe sofort mit dem asyncore Modul ein Programm, das in Verbindung steht mit vielen Servern geschrieben. Zum größten Teil bin ich gerade reagiert, um Daten von den Servern empfangen, aber gelegentlich muß ich „out-of-sync“ einige Daten senden. Mit dem Standard-Timeout von 30 Sekunden gibt es eine offensichtliche Verzögerung, bevor das Paket gesendet wird, so dass ich die Timeout auf 0,1 für mehr Ansprechbarkeit gesenkt.

Meine Frage ist: Ist es eine gute Idee, Performance-weise ein Timeout mit einem so niedrigen Wert zu verwenden, und wenn nicht, gibt es eine andere leistungsfähigere Art und Weise, die gleiche Sache zu vollbringen? Was ist die beste Praxis, dies zu tun?

War es hilfreich?

Lösung

Um meine eigene Frage zu beantworten:

Für diese Art von Polling-Anwendung ist es notwendig, einen kleinen Timeout-Wert zu haben. Die Timeout gibt, wie lange die internen Auswahlfunktionsblocks für eine Buchse warten, aktiv zu werden. Wenn Sie Daten senden, häufig müssen Sie das Timeout auf einen kleinen Wert setzen, so dass ausgewählte Umfragen Ihre Buchse für beschreibbare Daten auf einem akzeptablen Intervall. Andernfalls blockiert wählen zu lange vor der Kontrolle und kann diese Arten von Verzögerungen führen.

Am Ende habe ich ein Timeout von 0,05 Sekunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top