Maison > Article > développement back-end > Comment optimiser la taille du tampon sys.stdin pour une réactivité améliorée des scripts
Problème :
Lors de l'exécution du script de surveillance memcached memtracer .py, qui intercepte stdin à partir d'une séquence de commandes plus grande, le script connaît une latence lors de la réception des entrées en raison d'une taille de tampon d'environ 15 à 18 Ko.
Question :
Comment minimiser la taille du tampon pour sys.stdin afin d'améliorer la réactivité du script ?
Réponse :
Python fournit deux méthodes efficaces pour optimiser la mise en mémoire tampon stdin :
Utilisation de l'indicateur -u :
<code class="bash">python3 -u memtracer.py</code>
Exploiter os.fdopen :
<code class="python">import os newin = os.fdopen(sys.stdin.fileno(), 'r', 100) sys.stdin = newin # This makes newin the standard input from here onwards</code>
Dans cet exemple, newin est lié à un objet fichier qui lit à partir du même FD que l'entrée standard mais avec une taille de tampon plus petite de 100 octets.
Remarque que l'utilisation de os.fdopen nécessite une certaine prudence, car elle peut présenter des problèmes ou des limitations spécifiques à la plate-forme. Des tests approfondis sur toutes les plates-formes pertinentes sont recommandés.
En implémentant l'une de ces méthodes, la taille du tampon pour sys.stdin peut être considérablement réduite, permettant au script memtracer.py de réagir plus rapidement aux modifications d'entrée dans le memcached. scénario de surveillance.
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!