Профилирование многопроцессорного Python

Я пытаюсь выяснить, как профилировать простой многопроцессорный скрипт python

import multiprocessing import cProfile import time def worker(num): time.sleep(3) print 'Worker:', num if __name__ == '__main__': for i in range(5): p = multiprocessing.Process(target=worker, args=(i,)) cProfile.run('p.start()', 'prof%d.prof' %i) 

Я запускаю 5 процессов, поэтому cProfile генерирует 5 разных файлов. Внутри каждого из них я хочу видеть, что мой рабочий «рабочий» занимает примерно 3 секунды, но вместо этого я вижу только то, что происходит внутри «start'method».

Я был бы очень признателен, если бы кто-нибудь мог мне это объяснить.

Рабочий пример:

 import multiprocessing import cProfile import time def test(num): time.sleep(3) print 'Worker:', num def worker(num): cProfile.runctx('test(num)', globals(), locals(), 'prof%d.prof' %num) if __name__ == '__main__': for i in range(5): p = multiprocessing.Process(target=worker, args=(i,)) p.start() 

Python - лучший язык программирования в мире.