병렬화 된 Python 스크립트를 어떻게 프로파일 링 할 수 있습니까?
-
05-07-2019 - |
문제
파이썬 스크립트가 호출되었다고 가정 해 봅시다 my_parallel_script.py
여기에는 사용이 포함됩니다 multiprocessing
여러 가지를 병렬화하고 다음 명령으로 실행합니다.
python -m cProfile my_parallel_script.py
이것은 프로파일 링 출력을 생성합니다 부모 과정 뿐. 아동 프로세스에서 이루어진 전화는 전혀 기록되지 않습니다. 아동 프로세스도 프로파일 링 할 수 있습니까?
유일한 옵션이 소스를 수정하는 것이라면 가장 간단한 방법은 무엇입니까?
해결책
Cprofile은 단일 프로세스 내에서만 작동하므로 자식 프로세스를 자동으로 프로파일 링하지 않습니다.
하위 프로세스 코드를 조정하여 단일 프로세스로 별도로 호출 할 수 있도록하는 것이 좋습니다. 그런 다음 프로파일 러 아래에서 실행하십시오. 프로파일 링하는 동안 시스템 멀티 프로세스를 실행할 필요가 없으며, 한 명의 자녀 만 달리도록 작업을 단순화 할 것입니다.
제휴하지 않습니다 StackOverflow