Установка меньшего размера буфера для sys.stdin?

Я запускаю memcached с помощью следующего шаблона команды bash:

memcached -vv 2>&1 | tee memkeywatch2010098.log 2>&1 | ~/bin/memtracer.py | tee memkeywatchCounts20100908.log

попытаться отследить непревзойденный доступ к наборам для ключей всей платформы.

Скрипт memtracer приведен ниже и работает по желанию, с одной незначительной проблемой. Наблюдая за размером промежуточного файла журнала, memtracer.py не начинает получать ввод, пока размер файла memkeywatchYMD.log не достигнет 15-18K. Есть ли лучший способ чтения в stdin или, возможно, способ сократить размер буфера до 1 КБ для более быстрого времени отклика?

#!/usr/bin/python

import sys
from collections import defaultdict

if __name__ == "__main__":


    keys = defaultdict(int)
    GET = 1
    SET = 2
    CLIENT = 1
    SERVER = 2

    #if <
    for line in sys.stdin:
        key = None
        components = line.strip().split(" ")
        #newConn = components[0][1:3]
        direction = CLIENT if components[0].startswith("<") else SERVER

        #if lastConn != newConn:        
        #    lastConn = newConn

        if direction == CLIENT:            
            command = SET if components[1] == "set" else GET
            key = components[2]
            if command == SET:                
                keys[key] -= 1                                                                                    
        elif direction == SERVER:
            command = components[1]
            if command == "sending":
                key = components[3] 
                keys[key] += 1

        if key != None:
            print "%s:%s" % ( key, keys[key], )

Ответы на вопрос(5)

Ваш ответ на вопрос