11

my_parallel_script.pyいくつかのことを並列化するために使用する python スクリプトが呼び出されmultiprocessing、次のコマンドで実行するとします。

python -m cProfile my_parallel_script.py

これにより、親プロセスのみのプロファイリング出力が生成されます。子プロセスで行われた呼び出しはまったく記録されません。子プロセスもプロファイリングできますか?

唯一のオプションがソースを変更することである場合、これを行う最も簡単な方法は何ですか?

4

1 に答える 1

10

cProfile は単一のプロセス内でのみ機能するため、子プロセスのプロファイルを自動的に取得することはできません。

子プロセスのコードを微調整して、単一のプロセスとして個別に呼び出すことができるようにすることをお勧めします。次に、プロファイラーで実行します。プロファイリング中にシステムのマルチプロセスを実行する必要はおそらくなく、単一の子プロセスのみを実行することでジョブが簡素化されます。

于 2009-09-11T01:11:09.320 に答える