Ninja: توقيت بناء الوقت لكل subninja

تم إنشاؤها على ٢٢ ديسمبر ٢٠١٥  ·  9تعليقات  ·  مصدر: ninja-build/ninja

أحتاج إلى تحديد مقدار الوقت الذي يستغرقه كل subninja للبناء.

لقد واجهت مشكلتين رئيسيتين:

  1. لا يمكنني حقًا العثور على طريقة لتوقيت أهداف أخرى ثم توقيت كل أمر عن طريق تغليفه ببرنامج نصي للتوقيت.
  2. لا يمكنني ربط قاعدة بسجن معين.

هل ستكون هناك طريقة أخرى غير التوقيت لكل وحدة؟
&
هل هناك طريقة لتصدير $ subninja كمتغير ، مثل $ out؟

مع خالص التقدير ، جيوراغ.

تحرير: إذا كان من الممكن إضافة هذا كميزة إلى النينجا (توقيت كل وقت بناء وحدة فرعية) ، فسيكون ذلك رائعًا!

التعليق الأكثر فائدة

يمكنك أيضًا إلقاء نظرة على ملف .ninja_log ، والذي يسرد أوقات البدء والانتهاء لجميع الحواف في العمودين الأول والثاني.

ال 9 كومينتر

يمكنك إضافة هدف زائف (يسمى sub_all على سبيل المثال) اعتمادًا على جميع الأهداف المحددة في ملف subninja الخاص بك. ثم بالنسبة للتوقيت ، يمكنك القيام بما يلي: time ninja sub_all

لا يتمثل هدفي في تحديد وقت عملية الإنشاء بأكملها ، ولكن تحديد توقيت كل subninja بشكل منفصل.
والغرض منه ، في النهاية ، هو معرفة سبب استغراق بعض السنابل الفرعية وقتًا أطول من المعتاد في البناء

أعتقد أنني فهمت ذلك. عندما تمرر هدفًا كوسيطة إلى النينجا (مثل sub_all ) فإنه يبني هذا الهدف فقط.

يمكنك تكرار هذه العملية لكل ما تبذلونه من subninja.

يمكنك أيضًا إلقاء نظرة على ملف .ninja_log ، والذي يسرد أوقات البدء والانتهاء لجميع الحواف في العمودين الأول والثاني.

هل يتم إدراجه في جميع إصدارات النينجا؟ نسختى من النينجا على الأرجح
1.3 أو شيء من هذا القبيل ...

2015-12-28 20:22 GMT + 02: 00 Ilya Popov [email protected] :

يمكنك أيضًا إلقاء نظرة على ملف .ninja_log ، الذي يسرد البداية والنهاية
مرات لجميع الحواف في العمودين الأول والثاني.

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/ninja-build/ninja/issues/1080#issuecomment -167620057.

لقد راجعت للتو 1.3.4 وهو كذلك. ماذا ترى في .ninja_log ؟ ماذا يقول في السطر الأول (وهو التعليق)؟ هل هو " # ninja log v5

أنا حاليًا لست في مكان عملي ، وسأرد غدًا

2015-12-29 11:54 بتوقيت جرينتش + 02: 00 إيليا بوبوف [email protected] :

في 1.3.4 يفعل. ماذا ترى في .ninja_log الخاص بك؟ ماذا تقول في
السطر الأول (وهو التعليق)؟ هل هو "# ninja log v5"؟

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/ninja-build/ninja/issues/1080#issuecomment -167758376.

راجع أيضًا https://groups.google.com/forum/#!topic/ninja -build / aD82sxwD3_o - يبدو وكأنه سؤال دعم أكثر من كونه مشكلة في النينجا نفسه ، لذا أغلق هذا السؤال.

إليك بعض عناصر AWK التي تعرض متوسط ​​وقت الإنشاء لكل هدف من خلال سجل الإنشاء.

#!/usr/bin/awk -f

!/^#/ {
    TIMES[$4] += ($2 - $1)/1000
    COUNT[$4] += 1
}

END {
    for (TGT in TIMES)
        AVG[TGT]=TIMES[TGT]/COUNT[TGT]
    asorti(AVG, SORTED, "@val_num_desc")
    for (num in SORTED)
        print AVG[SORTED[num]] " " SORTED[num]
}

بعد الحفظ ، على سبيل المثال ، show-ninja-build-stats في مكان ما في $PATH و chmod +x -ing ، يمكنك ببساطة تشغيل show-ninja-build-stats < .ninja_log في دليل الإصدار الخاص بك.

شكرًا لهذه النصيحة للتحقق من ملف السجل هذا ،ilyapopov.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات