Ich habe ein einfaches Producer Consumer-Muster in einem Teil meines GUI-Codes eingerichtet. Ich versuche, nur den spezifischen Verbraucherabschnitt zu profilieren, um zu sehen, ob es eine Chance auf Optimierung gibt. Beim Versuch, den Code mit python -m cProfile -o out.txt myscript.py
auszuführen, erhalte ich jedoch einen Fehler von Pythons pickle
Modul.Profiling von Python-Code, der Multiprocessing verwendet?
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
Das Grundmuster im Code ist
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
Dies wird in der Regel Aufgaben von der GUI-Seite der Dinge geführt, aber für Testzwecke, habe ich es wie folgt auf.
Aber beim Versuch, das Skript zu starten, bekomme ich die obige Fehlermeldung.
Gibt es einen Weg um den Fehler?