سؤال

آمل أن ليس كل من يستخدم الرشيد تنقية.

لذا ماذا تفعل عندما تريد قياس:

  • الوقت المستغرق من خلال وظيفة
  • استخدام الذاكرة الذروة
  • مدونة التغطية

في هذه اللحظة, نحن نفعل ذلك يدويا [باستخدام سجل بيانات مع الطوابع الزمنية آخر النصي تحليل سجل الإخراج إلى excel.تفو...)

ماذا تنصحين ؟ لافتا إلى أدوات أو أي تقنيات سيكون موضع تقدير!

تحرير:آسف, أنا لم تحدد البيئة أولا ، عادي C على الملكية المحمول منصة

هل كانت مفيدة؟

المحلول

ربما كنت تريد أدوات مختلفة من أجل أداء التنميط مدونة التغطية.

عن التنميط أنا أفضل القرش على MacOSX.وهي مجانية من شركة أبل و جيد جدا.إذا كان التطبيق الخاص بك هو الفانيليا C يجب أن تكون قادرا على استخدامها ، إذا كان يمكنك الحصول على عقد من ماك.

عن التنميط على ويندوز يمكنك استخدام LTProf.رخيصة, ولكن ليست كبيرة:http://successfulsoftware.net/2007/12/18/optimising-your-application/

(أعتقد أن مايكروسوفت هي حقا اطلاق النار على نفسه في القدم من خلال عدم توفير لائق التعريف مع أرخص الإصدارات من Visual Studio.)

تغطية أنا أفضل تغطية المصادقة على ويندوز:http://successfulsoftware.net/2008/03/10/coverage-validator/ فإنه يقوم بتحديث التغطية في الوقت الحقيقي.

نصائح أخرى

لقد فعلت هذا كثيرا.إذا كان لديك IDE أو الجليد ، هناك تقنية أن يأخذ بعض الجهد اليدوي ، ولكن يعمل دون أن تفشل.

تحذير:الحديث المبرمجين أكره هذا, وانا ذاهب الى الحصول على downvoted.أنهم يحبون الأدوات.ولكنه يعمل حقا, و ليس عليك دائما لطيفة الأدوات.

أعتقد في هذه الحالة هو رمز شيئا مثل DSP أو الفيديو التي يتم تشغيلها على جهاز توقيت ، يجب أن تكون سريعة.لنفترض ما كنت تعمل على كل جهاز ضبط الوقت القراد هو روتين A.كتابة بعض اختبار التعليمات البرمجية لتشغيل الروتين الفرعي في حلقة بسيطة ، ويقول 1000 مرة أو لمدة طويلة بما يكفي لجعل عليك الانتظار على الأقل عدة ثوان.

في حين انها تعمل عشوائيا وقف مع وقفة مفتاح عينة مكدس الاستدعاءات (وليس فقط برنامج العداد) وتسجيل ذلك.(هذا الدليل جزء.) هل هذا عدد مرات 10.مرة واحدة لا يكفي.

الآن نبحث عن القواسم المشتركة بين كومة العينات.ابحث عن أي تعليمات أو استدعاء التعليمات التي تظهر على الأقل 2 العينات.وسوف يكون هناك العديد من هذه, ولكن البعض منهم سوف تكون في التعليمات البرمجية التي يمكنك تحسين.

تفعل ذلك وسوف تحصل على لطيفة تسريع, مضمونة.1000 التكرار سوف يستغرق وقتا أقل.

السبب في أنك لا تحتاج إلى الكثير من العينات أنت لا تبحث عن الأشياء الصغيرة.مثل إذا كنت ترى دعوة خاصة التعليمات على 5 من 10 عينات ، وهي مسؤولة عن ما يقرب من 50% من إجمالي وقت التنفيذ.المزيد من العينات سوف اقول لكم المزيد بالضبط ما هي النسبة المئوية ، إذا كنت تريد حقا أن تعرف.إذا كنت مثلي, كل ما تريد معرفته على ما هو عليه, لذلك يمكنك إصلاحه, والانتقال إلى المرحلة التالية.

القيام بذلك حتى كنت لا يمكن العثور على أي شيء أكثر من ذلك لتحسين و سوف تكون في أو بالقرب من أعلى سرعة.

بالنسبة للتطبيقات المعقدة أنا مروحة كبيرة من إنتل Vtune.هذا هو مختلفة قليلا من العقلية التقليدية التعريف أن الأدوات البرمجية.وهو يعمل عن طريق أخذ العينات المعالج لمعرفة أين مؤشر التعليمة هو 1000 مرة في الثانية.فإنه لديه ميزة كبيرة لا تتطلب أي تغييرات على الثنائيات التي في كثير من الأحيان كما ليس من شأنه أن يغير توقيت ما تحاول قياس.

لسوء الحظ أنها ليست جيدة .صافي أو جافا منذ ليس هناك طريقة Vtune إلى خريطة التعليمات مؤشر إلى الرمز مثل هناك مع رمز التقليدي.

كما يسمح لك لقياس جميع أنواع أخرى المعالج/الأجهزة التي تركز على مقاييس مثل الساعات في التدريس, ذاكرة التخزين المؤقت الزيارات/يخطئ ، TLB الزيارات/يخطئ ، الخ والتي تمكنك من تحديد لماذا أقسام معينة من التعليمات البرمجية قد أخذ وقتا أطول لتشغيل مما كنت تتوقع فقط من خلال فحص التعليمات البرمجية.

إذا كنت تفعل 'معادن' جزءا لا يتجزأ من 'ج' نظام (لست متأكدا تماما ما 'المحمول' ضمنية في نشر) ، ثم لديك عادة نوع من توقيت ISR ، والتي من السهل إلى حد ما نموذج التعليمات البرمجية العنوان الذي حدث المقاطعة (من حفر مرة أخرى في كومة أو تبحث في الرابط سجلات أو أيا كان).ثم انها تافهة بناء الرسم البياني من عناوين في بعض مزيج من تحبب/مجموعة من الفائدة.

انها عادة ما تكون ثم ليس من الصعب جدا أن يحضر بعض مزيج من التعليمات البرمجية/script/أوراق التفوق الذي يدمج الخاص بك الرسم البياني التهم مع عناوين من رابط الرمز/قائمة ملف تعطيك معلومات الملف الشخصي.

إذا كنت جدا من ذاكرة الوصول العشوائي محدودة ، يمكن أن يكون قليلا من الألم إلى جمع ما يكفي من البيانات عن هذا أن يكون على حد سواء بسيطة ومفيدة, ولكن سوف تحتاج إلى أن تقول لنا المزيد عن منصة التداول الخاصة بك.

nProf خالية من يفعل ذلك .صافي.

يحصل على هذه المهمة ، على الأقل بما يكفي لرؤية 80/20.(20% من قانون تأخذ 80% من الوقت)

ويندوز (.صافي الأصلية السابقين): AQTime هو أداة عظيمة للحصول على المال.مستقل أو Visual Studio البرنامج المساعد.

جافا:أنا من محبي JProfiler.مرة أخرى, يمكن تشغيل مستقل أو الكسوف (أو أخرى مختلفة ايديس) المساعد.

وأعتقد أن كلا منهما الإصدارات التجريبية.

على جوجل Perftools هي مفيدة للغاية في هذا الصدد.

يمكنني استخدام devpartner مع MSVC 6 و XP

كيف هي أي أدوات الذهاب إلى العمل إذا كان النظام الأساسي الخاص بك هو الملكية OS ؟ أعتقد أنك تفعل أفضل يمكنك الآن

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top