Maison  >  Article  >  développement back-end  >  Comment optimiser la taille du tampon sys.stdin pour une réactivité améliorée des scripts

Comment optimiser la taille du tampon sys.stdin pour une réactivité améliorée des scripts

Susan Sarandon
Susan Sarandonoriginal
2024-10-21 10:33:02688parcourir

How to Optimize sys.stdin Buffer Size for Enhanced Script Responsiveness

Adaptation de la taille du tampon pour sys.stdin : amélioration de la réactivité des entrées

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 :

  • L'indicateur -u supprime la mémoire tampon à la fois stdin/stdout et stderr, garantissant des lectures et écritures directes sans délai.
<code class="bash">python3 -u memtracer.py</code>

Exploiter os.fdopen :

  • Alternativement, on peut créer un nouvel objet fichier qui partage le même descripteur de fichier sous-jacent que sys.stdin mais avec une mise en mémoire tampon personnalisée .
<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!

Déclaration:
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