
나는 IDLE의 셸을 통해 실행하는 것과 비교하여 셸 명령줄에서 시작할 때 간단한 Python 스크립트(루프에서 간단한 대수 계산 포함)가 상당히 빠르게(최대 6배) 실행된다는 사실을 여러 번 확인했습니다. 대본에는 멋진 일이 없습니다. 루프의 진행 상황을 시각적으로 확인하기 위해 루프 변수만 인쇄합니다.
확실히 이 print 문이 IDLE에서 속도 저하의 원인이 될 수는 없습니다. 아니면 그럴 수 있습니까?
누군가 이것이 왜 나에게 설명할 수 있습니까?
답변1
예, 인쇄 문은 실제로 유휴 상태에서 속도 저하의 주요 원인입니다. stdout 및 stderr 스트림은 IDLE에 의해 캡처되며 텍스트를 적절하게 렌더링하기 위해 전체 Tk 명령이 실행됩니다. 출력을 stdout으로 제거하면 작업 속도가 다시 빨라집니다.
참조유휴립.PyShell,유휴립.출력창, 그리고유휴 lib.EditorWindow토끼굴의 (일부) 범위에 대한 모듈...
나는벌채 반출진행 상황을 기록하는 모듈; 그런 다음 IDLE에서 실행할 때 로깅 수준을 더 높은 수준으로 설정하여 해당 조건에서 출력을 방지하거나 stdout이 아닌 다른 곳에 기록할 수 있습니다.
비록 나는정말권장하지 않습니다. 다음과 같은 것이 아마도 작동할 것입니다.최대IDLE에서 실행할 때 동작을 다르게 구성할 수 있기를 정말로 원한다면 시간입니다. 정말로 그러면 안 되지만 :-)
import sys
running_under_idle = 'idlelib' in sys.modules