[Python-de] Zeilengepuffertes r/w

Frank Ursel sexyspamcatcher at trash-mail.com
Di Aug 30 16:10:43 CEST 2011


Ole Streicher schrieb:

> Sender:
> ----------------------8<----------------- import time
> l = open('myfifo',mode='w',buffering=1) while True:
>       s = 'einszweidrei'
>       l.write(s + '\n')
>       print s
>       time.sleep(1)
...
> wobei "myfifo" eine (per mkfifo angelegter) named pipe ist. Lasse ich
> jetzt die beiden laufen, erscheinen die Ausgaben im zweiten Programm
> stark verzögert, trotz des "line buffers", welches eingeschaltet war.
> 
> Warum ist das so und wie kann ich das ändern?

Du bekommst die Verzögerung nicht trotz, sondern gerade durch den Buffer. 
Jedenfalls auf Senderseite. Da wird mit dem Senden der Daten gewartet, 
bis genug Daten im Puffer sind, damit sich das Versenden auch lohnt.

Frank


Mehr Informationen über die Mailingliste python-de