Pergunta

Suponha que eu tenho um script python chamado my_parallel_script.py que envolve o uso de multiprocessing paralelizar várias coisas e eu executá-lo com o seguinte comando:

python -m cProfile my_parallel_script.py

Isso gera perfis de saída para o processo pai somente. As chamadas feitas em processos filhos não são gravados em tudo. É possível ao perfil dos processos criança assim?

Se a única opção é modificar a fonte, o que seria a maneira mais simples de fazer isso?

Foi útil?

Solução

Cprofile só funciona dentro de um único processo, para que você não será automaticamente se o processo filho perfilado.

Eu recomendaria que você ajustar o código processo filho para que você possa chamá-lo separadamente, como um único processo. Em seguida, execute-o sob o profiler. Você provavelmente não precisa para executar o seu multi-processo do sistema, enquanto perfilando, e vai simplificar o trabalho para ter apenas uma única corrida criança.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top