मेरे पास मेरे गुई कोड के हिस्से में स्थापित एक साधारण निर्माता उपभोक्ता पैटर्न है। मैं ऑप्टिमाइज़ेशन के लिए कोई मौका देखने के लिए सिर्फ विशिष्ट उपभोक्ता अनुभाग को प्रोफाइल करने का प्रयास कर रहा हूं। हालांकि, 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
कोड में बुनियादी पैटर्न
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()
लेकिन स्क्रिप्ट शुरू करने की कोशिश करने पर, मुझे उपरोक्त त्रुटि संदेश मिलता है।
क्या त्रुटि के आसपास कोई रास्ता है?