2010-01-12 4 views
7

나는 멀티 스레드 파이썬 응용 프로그램을 가지고 있으며, 현재 매우 높은 (90 % 이상) CPU 사용량 문제를 해결하고 있습니다.프로필 파이썬 CPU 사용량 스레드 별

저는 프로파일 러를 시험해 볼 것입니다. 그러나 응용 프로그램 내에서 스레드 당 CPU 사용량을 얻을 수있는 방법이 있는지 알고 싶습니다. 나는 os.times()가 전반적으로 CPU 사용량을 얻게 될 것이라는 것을 이해한다. 각 스레드의 사용량을 얻기 위해 각 스레드 내에서 실행할 수있는 것이 있는가? 어떤 스레드가 CPU를 먹고 있는지 확인하는 것이 매우 도움이됩니다.

+0

어떤 운영 체제는/지원에 테스트 할 계획입니까? –

+0

주로 Windows이지만 Linux도 지원합니다. Windows에서 CPU 사용량이 높아지고 있지만 현재 Linux에서이 값을 테스트하지 않았습니다. – Dave

답변

1

프로파일 러 이외에 파이썬에는 개별 스레드 CPU 사용을 모니터링하기위한 많은 기능이 내장되어 있다고 생각하지 않습니다. 또한 this post은 스레드 프로파일 러의 간단한 구현 예를 제공합니다. 이것은 주로 유닉스 기반 시스템에 맞춰져 있지만, 시작이다.

0

Windows의 경우 프로세스 탐색기 (Microsoft's Sysinternals Tools과 함께 제공되는 "procexp.exe")를 살펴볼 수 있습니다. 모든 스레드와 CPU 시간을 나열하는 각 프로세스의 속성에 탭 "스레드"가 있습니다.

정보가 충분하지 않으면 Python의 profiling mechanisms을 사용하십시오. 사용하기에 너무 어렵지 않습니다.