문제:
memcached 모니터링 스크립트 memtracer를 실행할 때 더 큰 명령 시퀀스에서 stdin을 가로채는 .py는 약 15-18K의 버퍼 크기로 인해 스크립트가 입력을 수신할 때 지연 시간을 경험합니다.
질문:
스크립트의 응답성을 향상시키기 위해 sys.stdin의 버퍼 크기를 어떻게 최소화할 수 있습니까?
답변:
Python은 stdin 버퍼링을 최적화하기 위한 두 가지 효과적인 방법을 제공합니다.
-u 플래그 사용:
<code class="bash">python3 -u memtracer.py</code>
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>
이 예에서 newin은 표준 입력과 동일한 FD에서 읽는 파일 객체에 바인딩되지만 버퍼 크기는 100바이트로 더 작습니다.
참고 os.fdopen을 사용하려면 플랫폼별 문제나 제한 사항이 있을 수 있으므로 주의가 필요합니다. 모든 관련 플랫폼에서 철저한 테스트를 수행하는 것이 좋습니다.
이러한 방법 중 하나를 구현하면 sys.stdin의 버퍼 크기를 크게 줄일 수 있으므로 memtracer.py 스크립트가 memcached의 입력 변경 사항에 더 신속하게 반응할 수 있습니다. 모니터링 시나리오.
위 내용은 향상된 스크립트 응답성을 위해 sys.stdin 버퍼 크기를 최적화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!