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

Susan Sarandon
Libérer: 2024-10-21 10:33:02
original
609 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!