2011-10-14 8 views
3

Windows에서 Python 스크립트를 실행하고 있는데 파이썬 프로세스에 CPU가 8 % 정도 걸리더라도 연결된 conhost.exe 프로세스는 약 14 %의 시간이 걸린다는 것을 알았습니다.Windows 용 Python - conhost.exe CPU 사용량

왜 이렇게됩니까? 어떻게 CPU 소비의 많은 부분이 conhost에 있고 파이썬 프로세스에 있지 않은가?
이 CPU 사용량을 줄일 수있는 방법이 있습니까?

UPDATE 1 (코스의 코드 최적화 외에) : Win7에 64 비트, 파이썬 2.6.6

업데이트 2 : 파이썬 프로그램이 SWIG 파이썬 바인딩을 통해 C++ 패키지를 사용합니다. C++ 패키지 (quickfix)는 네트워크와의 I/O를 상당히 (1) 수행하고 콘솔 (2)에도 출력합니다. 파이썬 코드는 여러 파일 (3)에 인쇄됩니다. 이 세 가지는 용의자가되어야합니까?

+0

어떤 Windows 및 Python이 있습니까? –

+0

그리고이 문제는 ... 때문에? –

+0

콘솔 창을 최소화하면 conhost.exe의 CPU 사용량이 대부분 사라 집니까? 그렇다면 비디오 장치 드라이버에 문제가있을 수 있습니다. 예를 들어 Microsoft 일반 드라이버를 사용하는 경우 콘솔 성능이 좋지 않을 수 있습니다. –

답변

3

프로그램이 무엇을하는지 모르기 때문에 조금 추측해야합니다. I/O가없는 한 conhost은 0 % CPU를 사용합니다. 그래서 나는 당신이 콘솔에 많은 텍스트를 인쇄하고 있다고 가정합니다. 예를 들어 다음 프로그램은보고 한 내용과 동일한 증상을 나타냅니다.

while True: 
    print "Hello world!" 
+1

콘솔에 인쇄하는 것만으로 conhost 작업을해야한다고 생각합니다. –

+0

이 대답에 이어 출력을 파일로 전환하면 conhost.exe의 CPU 소비가 크게 줄어 듭니다. 그래서 출력을 잃어 버릴 염려가 없다면'script.py> output.txt' 또는'script.py> nul'을 쓸 수 있습니다. – Jonathan

+0

내 의심을 확인해 줘서 고맙습니다. –