내 gui 코드의 일부로 간단한 제작자 소비자 패턴을 설정했습니다. 나는 최적화를위한 어떤 기회가 있는지보기 위해 특정 소비자 섹션을 프로파일 링하려고 시도하고있다. 그러나 python -m cProfile -o out.txt myscript.py
코드를 실행하려고하면 파이썬의 pickle
모듈에서 오류가 발생합니다.멀티 프로세싱을 사용하는 파이썬 코드를 프로파일 링 하시겠습니까?
File "<string>", line 1, in <module>
File "c:\python27\lib\multiprocessing\forking.py", line 374, in main
self = load(from_parent)
File "c:\python27\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "c:\python27\lib\pickle.py", line 858, in load
dispatch[key](self)
File "c:\python27\lib\pickle.py", line 880, in load_eof
raise EOFError
EOFError
코드의 기본 패턴이 일반적으로 사물의 GUI 측에서 작업을 공급하지만, 다음과 같이 테스트를 위해, 나는 그것을 설정
class MyProcess(multiprocessing.Process):
def __init__(self, in_queue, msg_queue):
multiprocessing.Process.__init__(self)
self.in_queue = in_queue
self.ext_msg_queue = msg_queue
self.name == multiprocessing.current_process().name
def run(self):
## Do Stuff with the queued items
입니다.
if __name__ == '__main__':
queue = multiprocessing.Queue()
meg_queue = multiprocessing.Queue()
p = Grabber(queue)
p.daemon = True
p.start()
time.sleep(20)
p.join()
하지만 스크립트를 시작하려고 할 때 위의 오류 메시지가 표시됩니다.
오류가 있습니까?