عند كتابة برنامج JavaScript ، إذا كنت بحاجة إلى معرفة وقت تنفيذ جزء معين من التعليمات البرمجية ، فيمكنك استخدام Console.time (). ومع ذلك ، عند تحليل برامج JavaScript ذات منطق أكثر تعقيدًا ومحاولة العثور على اختناقات الأداء ، فإن Console.time () لا ينطبق - تحليل متعمق لتشغيل برامج JavaScript مع منطق أكثر تعقيدًا يعني إدراج عدد كبير من أجهزة التحكم. الوقت () ، وهو أمر غير مقبول بلا شك. لضبط برنامج JavaScript مع المنطق المعقد ، الطريقة الصحيحة هي استخدام Console.profile ().
دعم المتصفح
توفر Firefox و Google Chrome و Safari ، التي قامت بتثبيت المكون الإضافي Firebug ، وبيانات وحدة التحكم. استخدام وحدة التحكم. profile () على العديد من المتصفحات الرئيسية متشابهة. تقدم هذه المقالة فقط استخدام Console.profile () في Firebug. شيء واحد جدير بالذكر أنه إذا كنت تستخدم وحدة التحكم Firebug لكتابة الرمز التجريبي JavaScript مباشرة ، فإن Console.profile () غير صالح.
استخدام Console.profile ()
استخدام console.profile () بسيط للغاية: إدراج وحدة التحكم. الرمز التالي مثال:
نسخة الكود كما يلي:
دالة dotask () {
Dosubtaska (1000) ؛
Dosubtaska (100000) ؛
dosubtaskb (10000) ؛
dosubtaskc (1000،10000) ؛
}
وظيفة dosubtaska (العد) {
لـ (var i = 0 ؛ i <count ؛ i ++) {}
}
وظيفة dosubtaskb (العد) {
لـ (var i = 0 ؛ i <count ؛ i ++) {}
}
دالة dosubtaskc (countx ، مقاطعة) {
لـ (var i = 0 ؛ i <countx ؛ i ++) {
لـ (var j = 0 ؛ j <county ؛ j ++) {}
}
}
console.profile () ؛
dotask () ؛
console.profileend () ؛
تنفيذ console.profile () قبل تشغيل وظيفة dotask (). بعد اكتمال وظيفة Dotask () ، يمكن جمع المعلومات التفصيلية أثناء عملية تشغيل وظيفة Dotask (). يمكنك أن ترى في وحدة التحكم في Firebug:
من النتائج ، يمكننا أن نرى أن وقت الملف الشخصي هو 101.901ms في المجموع ، بما يتضمن 5 مكالمات وظائف. العنوان الافتراضي للنتيجة هو "ملف التعريف" ، والذي يمكن تخصيصه عن طريق تمرير المعلمات إلى وظيفة console.profile (). على سبيل المثال ، يمكن أن يؤدي استخدام Console.Profile ("ملف تعريف الاختبار") إلى تغيير عنوان هذا الملف الشخصي إلى "ملف تعريف الاختبار" في النتيجة ، وهو أمر مفيد بشكل خاص عند تنفيذ عمليات الملف الشخصي المتعدد في وقت واحد. معنى كل عمود في نتيجة الملف الشخصي المحدد هو:
1. الوظيفة. اسم الوظيفة.
2. يدرس. عدد المكالمات. على سبيل المثال ، في المثال أعلاه ، يتم تنفيذ وظيفة dosubtaska () مرتين.
3. في المائة. النسبة المئوية للوقت المستهلكة بواسطة هذه الوظيفة استدعاء في الوقت الكلي.
4. وقت. باستثناء الوقت المستغرق في استدعاء وظائف أخرى ، مقدار الوقت الذي تستغرقه الوظيفة نفسها. على سبيل المثال ، في المثال أعلاه ، استغرق Dotask () بلا شك وقتًا طويلاً للتنفيذ ، ولكن نظرًا لأن الأمر استغرق طوال الوقت لاستدعاء الوظائف الأخرى ، فإن الأمر لم يستغرق الكثير من الوقت ، فقط 0.097 مللي ثانية.
5. الوقت. على عكس الوقت الخاص ، لا يتم النظر في حساب إجمالي المستهلكة للوقت للوظيفة عند استدعاء عوامل الوظائف الأخرى. في المثال أعلاه ، تنفذ دالة dotask () 101.901ms. للوقت والوقت الخاص ، يمكنك أيضًا استنتاج: إذا كان الوقت أكبر من الوقت الخاص ، فإن الدعوة إلى وظائف أخرى تشارك في الوظيفة.
6.AVG. صيغة الحساب هي: avg = الوقت/المكالمات. في المثال أعلاه ، تم تنفيذ وظيفة dosubtaska () مرتين ، وكان إجمالي وقتها 1.054 مللي ثانية ، لذلك كان متوسط الوقت الإجمالي لها 0.527 مللي ثانية.
7. مين. الحد الأدنى من الوقت يستغرق تسمية هذه الوظيفة. على سبيل المثال ، في المثال أعلاه ، يتم تنفيذ وظيفة dosubtaska () مرتين ، والحد الأدنى المستهلكة للوقت هي أن المكالمة التي تستغرق وقتًا أقل لقضاء 0.016 مللي ثانية.
8.max. الحد الأقصى للوقت لاستدعاء هذه الوظيفة. على سبيل المثال ، في المثال أعلاه ، تم تنفيذ وظيفة dosubtaska () مرتين ، وأقصى عملية تستغرق وقتًا طويلاً هي أن المكالمة التي استغرقت المزيد من الوقت لقضاء 1.038 مللي ثانية.
9.file. ملف JS حيث توجد الوظيفة.
استخدام أزرار الملف الشخصي في Firebug
بالإضافة إلى إدخال عبارة Console.profile () في رمز JavaScript ، يوفر Firebug أيضًا زر ملف تعريف إلى رمز JavaScript في الوقت الفعلي في الصفحة. موضع الزر هو:
عند الحاجة إلى ملف تعريف ، يمكنك الضغط على الزر ، وإذا كانت عملية الصفحة التالية تثير أي رمز JavaScript ، فسيقوم FireBug بتسجيله. في نهاية عملية الملف الشخصي ، فقط اضغط على الزر مرة أخرى. تتوافق النتيجة النهائية مع النتيجة التي تم الحصول عليها عن طريق إدراج بيان Console.profile ().