كيف يمكنك البروفايل بشكل متوازي بيثون السيناريو ؟
-
05-07-2019 - |
سؤال
لنفترض لدي بيثون السيناريو يسمى my_parallel_script.py
أنه ينطوي على استخدام multiprocessing
إلى يوازي العديد من الأشياء وأنا تشغيل باستخدام الأمر التالي:
python -m cProfile my_parallel_script.py
هذا يولد التنميط إخراج عملية الأصل فقط.المكالمات التي تتم في العمليات الطفل لا تسجل على الإطلاق.هل من الممكن تعريف الطفل العمليات ؟
إذا الخيار الوحيد هو تعديل المصدر ما يمكن أن يكون أبسط طريقة للقيام بذلك ؟
المحلول
cProfile يعمل فقط في عملية واحدة, لذلك سوف لا تحصل تلقائيا عملية طفل لمحة.
وأود أن ننصح قرص الطفل عملية البرمجية بحيث يمكنك أن تحتج بها على حدة باعتبارها عملية واحدة.ثم تشغيله تحت التعريف.ربما لا تحتاج إلى تشغيل النظام الخاص بك عملية متعددة في حين التنميط ، وسوف تبسيط عمل لديها سوى طفل واحد على التوالي.
لا تنتمي إلى StackOverflow