باستخدام Callgrind/Kcachegrind للحصول على إحصائيات لكل تراكم
-
24-09-2019 - |
سؤال
أود أن أكون قادرًا على رؤية كيف يستخدم كل مؤشر ترابط "باهظ الثمن" في طلبي. أنا معرف مع --separate-thread=yes
الخيار الذي يمنحك ملف callgrind للتطبيق بأكمله ثم واحد لكل تراكم.
يعد هذا مفيدًا لعرض ملف تعريف أي مؤشر ترابط معين ، لكن ما أريده حقًا هو مجرد قائمة مرتبة لوقت وحدة المعالجة المركزية من كل مؤشر ترابط حتى أتمكن من معرفة المواضيع التي هي أكبر الخنازير.
المحلول
لا يسمح Valgrind/Callgrind بهذا السلوك. لا kcachegrind لا يفعل ذلك ، لكنني أعتقد أنه سيكون تحسنًا جيدًا. ربما يمكن العثور على بعض الإجابات على قائمة البريد الخاصة بهم.
عمل ولكن حقا مملة يمكن أن تكون الطريقة لاستخدام الخيار --separate-thread=no
, وتحديث الكود الخاص بك لاستخدامه في كل موضوع أ مختلف اسم الوظيفة أو اسم الفصل. اعتمادًا على تعقيد الكود الخاص بك ، يمكن أن يكون الجواب (باستخدام 1 computedata () ، 2 computedata () ، ..)
نصائح أخرى
فقط افتح ملامح متعددة في Kcachegrind في نفس الوقت.