Angenommen, ich habe ein Python-Skript namens my_parallel_script.py
die multiprocessing
Verwendung beinhaltet mehrere Dinge parallelisieren und ich führen Sie es mit dem folgenden Befehl:Wie können Sie ein parallelisiertes Python-Skript profilieren?
python -m cProfile my_parallel_script.py
Dies erzeugt Ausgangs Profilierung für den geordneten Prozess nur. Anrufe in untergeordneten Prozessen werden überhaupt nicht aufgezeichnet. Ist es möglich, auch die Kindprozesse zu profilieren?
Wenn die einzige Möglichkeit ist, die Quelle zu ändern, was wäre der einfachste Weg, dies zu tun?
Ich habe das schon versucht, und leider ** ** ** muss ich das System Multi-Prozess beim Profiling ausführen. Es scheint sich nach einiger Zeit deutlich zu verlangsamen, aber nur wenn es mit aktiviertem Multiprocessing läuft. – Fragsworth
Wahrscheinlich ist es dann Ressourcenkonflikte, und das Profilieren ist möglicherweise nicht der Weg, es zu finden. In jedem Fall könnten Sie versuchen, alle untergeordneten Prozesse gleichzeitig zu profilieren. Sie können das Profil programmgesteuert im untergeordneten Python-Code aufrufen. –