أحتاج إلى تحديد مقدار الوقت الذي يستغرقه كل subninja للبناء.
هل ستكون هناك طريقة أخرى غير التوقيت لكل وحدة؟
&
هل هناك طريقة لتصدير $ subninja كمتغير ، مثل $ out؟
مع خالص التقدير ، جيوراغ.
تحرير: إذا كان من الممكن إضافة هذا كميزة إلى النينجا (توقيت كل وقت بناء وحدة فرعية) ، فسيكون ذلك رائعًا!
يمكنك إضافة هدف زائف (يسمى 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.
التعليق الأكثر فائدة
يمكنك أيضًا إلقاء نظرة على ملف
.ninja_log
، والذي يسرد أوقات البدء والانتهاء لجميع الحواف في العمودين الأول والثاني.