최적화된 입력 처리를 위해 sys.stdin의 버퍼 크기를 줄이는 방법은 무엇입니까?

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

How to Reduce the Buffer Size of sys.stdin for Optimized Input Handling?

sys.stdin의 버퍼 크기를 어떻게 작게 설정하나요?

주어진 명령 패턴으로 memcached를 실행할 때 memtracer에 상당한 시간이 걸립니다. py 스크립트를 사용하여 입력 수신을 시작합니다. 이는 sys.stdin의 버퍼 크기가 커서 원하는 작업에 적합하지 않기 때문입니다. 이 문서에서는 버퍼링되지 않은 입력/출력 및 os.fdopen 사용을 포함하여 이 문제를 해결하는 두 가지 방법을 살펴봅니다.

Python -u 플래그 사용

Python은 stdin/에서 버퍼링을 제거하는 편리한 옵션을 제공합니다. -u 플래그를 완전히 사용하는 stdout. 이는 다음 명령을 실행할 때 지정할 수 있습니다:

<code class="bash">memcached -vv 2>&1 | tee memkeywatch2010098.log 2>&1 | ~/bin/memtracer.py | tee memkeywatchCounts20100908.log -u</code>
로그인 후 복사

os.fdopen을 사용하여 버퍼링 변경

또는 기존 파일 설명자와 동일한 파일 설명자를 사용하여 새 파일 개체를 만들 수 있지만 버퍼링이 변경되었습니다. 여기에는 os.fdopen 함수 사용이 포함됩니다.

<code class="python">import os
import sys

newin = os.fdopen(sys.stdin.fileno(), 'r', 100)</code>
로그인 후 복사

이것은 표준 입력(sys.stdin)과 동일한 파일 설명자에서 읽는 새 파일 객체 newin을 생성하지만 버퍼 크기는 100바이트. 그런 다음 newin을 표준 입력 개체로 사용할 수 있습니다.

결론

-u 플래그와 os.fdopen 모두 sys.stdin에서 버퍼링을 줄이는 효과적인 방법을 제공합니다. -u 플래그는 버퍼링을 완전히 제거하는 반면, os.fdopen은 사용자 정의 버퍼 크기 설정에 더 많은 유연성을 제공합니다. 다양한 플랫폼과의 호환성을 보장하고 특정 성능 요구 사항을 충족하려면 이러한 접근 방식을 철저히 테스트하는 것이 중요합니다.

위 내용은 최적화된 입력 처리를 위해 sys.stdin의 버퍼 크기를 줄이는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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