Maison > développement back-end > Tutoriel Python > Comment réduire la taille du tampon pour sys.stdin ?

Comment réduire la taille du tampon pour sys.stdin ?

Linda Hamilton
Libérer: 2024-10-21 10:38:29
original
757 Les gens l'ont consulté

How to Reduce Buffer Size for sys.stdin?

Comment réduire la taille du tampon pour sys.stdin

Lors de l'exécution de la commande :

<code class="bash">memcached -vv 2>&1 | tee memkeywatch2010098.log 2>&1 | ~/bin/memtracer.py | tee memkeywatchCounts20100908.log</code>
Copier après la connexion

il a été observé que memtracer.py ne commence pas à recevoir des entrées tant que memkeywatchYMD.log n'a pas dépassé la taille de 15 à 18 Ko. Pour résoudre ce problème, il existe deux approches :

Utilisation de l'indicateur sans tampon (-u)

Python fournit un indicateur sans tampon -u qui supprime la mise en mémoire tampon de stdin/stdout. En appelant Python avec cet indicateur :

<code class="bash">python -u ~/bin/memtracer.py</code>
Copier après la connexion

vous pouvez éliminer complètement la mise en mémoire tampon pour stdin et stdout.

Création d'un nouvel objet fichier avec une mise en mémoire tampon différente

Vous pouvez également créer un nouvel objet fichier avec le même descripteur de fichier sous-jacent que l'entrée standard mais avec une taille de tampon plus petite. Ceci peut être réalisé en utilisant os.fdopen :

<code class="python">import os
import sys

# Create a new file object with a buffer size of 100 bytes
newin = os.fdopen(sys.stdin.fileno(), 'r', 100)

# Assign the new file object to standard input
sys.stdin = newin</code>
Copier après la connexion

Ce code devrait vous permettre de lire à partir d'une entrée standard avec une taille de tampon de seulement 100 octets, ce qui entraîne des temps de réponse plus rapides. Notez que cette approche peut avoir des limitations spécifiques à la plate-forme, des tests approfondis sont donc recommandés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal