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

Я пытаюсь запустить cProfile.runctx () для каждого процесса в многопроцессорном пуле, чтобы получить представление о узких местах многопроцессорности в моем источнике. Вот упрощенный пример того, что яЯ пытаюсь сделать:

from multiprocessing import Pool
import cProfile

def square(i):
    return i*i

def square_wrapper(i):
    cProfile.runctx("result = square(i)",
        globals(), locals(), "file_"+str(i))
    # NameError happens here - 'result' is not defined.
    return result

if __name__ == "__main__":
    pool = Pool(8)
    results = pool.map_async(square_wrapper, range(15)).get(99999)
    print results

К сожалению, пытаюсь выполнить "результат = квадрат (я) на профилировщик не влияетрезультат' в объеме он был вызван из. Как я могу выполнить то, что я пытаюсь сделать здесь?

Ответы на вопрос(1)

Ваш ответ на вопрос