향상된 스크립트 응답성을 위해 sys.stdin 버퍼 크기를 최적화하는 방법

Susan Sarandon
풀어 주다: 2024-10-21 10:33:02
원래의
691명이 탐색했습니다.

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

sys.stdin의 버퍼 크기 조정: 입력 응답성 개선

문제:

memcached 모니터링 스크립트 memtracer를 실행할 때 더 큰 명령 시퀀스에서 stdin을 가로채는 .py는 약 15-18K의 버퍼 크기로 인해 스크립트가 입력을 수신할 때 지연 시간을 경험합니다.

질문:

스크립트의 응답성을 향상시키기 위해 sys.stdin의 버퍼 크기를 어떻게 최소화할 수 있습니까?

답변:

Python은 stdin 버퍼링을 최적화하기 위한 두 가지 효과적인 방법을 제공합니다.

-u 플래그 사용:

  • -u 플래그는 stdin/stdout 및 stderr 모두 버퍼링을 해제하여 지연 없이 직접 읽고 쓰기를 보장합니다.
<code class="bash">python3 -u memtracer.py</code>
로그인 후 복사

os.fdopen 활용:

  • 또는 sys.stdin과 동일한 기본 파일 설명자를 공유하지만 사용자 정의된 버퍼링을 사용하는 새 파일 객체를 생성할 수 있습니다. .
<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>
로그인 후 복사

이 예에서 newin은 표준 입력과 동일한 FD에서 읽는 파일 객체에 바인딩되지만 버퍼 크기는 100바이트로 더 작습니다.

참고 os.fdopen을 사용하려면 플랫폼별 문제나 제한 사항이 있을 수 있으므로 주의가 필요합니다. 모든 관련 플랫폼에서 철저한 테스트를 수행하는 것이 좋습니다.

이러한 방법 중 하나를 구현하면 sys.stdin의 버퍼 크기를 크게 줄일 수 있으므로 memtracer.py 스크립트가 memcached의 입력 변경 사항에 더 신속하게 반응할 수 있습니다. 모니터링 시나리오.

위 내용은 향상된 스크립트 응답성을 위해 sys.stdin 버퍼 크기를 최적화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿