وداعًا لمحلل JavaScript، يتم تحليل بيانات وحدة المعالجة المركزية باستخدام لوحة الأداء

ستتم إزالة لوحة محلل JavaScript في Chrome 124. من الآن فصاعدًا، استخدِم لوحة الأداء لتحديد أداء وحدة المعالجة المركزية (CPU) في Node.js.

لماذا قررنا إيقاف محلّل JavaScript نهائيًا؟ (محلّل JavaScript)

في إصدار Chrome 58، خطّط فريق "أدوات مطوري البرامج" لإيقاف أداة تحليل JavaScript نهائيًا. وهناك العديد من الأسباب وراء ذلك:

  • لم يعُد قيد التطوير بشكل نشط. لم يتلق محلل JavaScript أي تحديثات رئيسية منذ عدة سنوات، ولا يمتلك الفريق الموارد اللازمة لمواصلة تطويره.
  • تجربة تحليل أكثر سلاسة: سبق أن تم استخدام لوحة الأداء لجميع أنواع تحليل الأداء، وبفضل قدرتها على تحليل أداء وحدة المعالجة المركزية (CPU) بلغة JavaScript في Node.js، أصبح من المنطقي دمج كل أنواع البيانات في مكان واحد لتحقيق الاتّساق والكفاءة.
  • لوحة الأداء أفضل. ونحن نواصل تحسين هذه الأداة من خلال إضافة ميزات وتحسينات جديدة لجعلها أداة أكثر فعالية وسهولة في الاستخدام لتحليل الأداء.

ما الذي يجب عليك فعله بعد الإيقاف؟

للمزيد من المعلومات عن طريقة تحليل أداء وحدة المعالجة المركزية (CPU) في JavaScript، يمكنك الاطّلاع على أداء الملف الشخصي في Node.js.

في ما يلي بعض النصائح لاستخدام لوحة الأداء:

  • استخدِم الرسم البياني المختلف لتحديد المؤثِّرات السلبية في الأداء.

المخطط اللامع.

  • استخدِم علامتَي التبويب من أسفل إلى أعلى وشجرة اتصال لفهم العلاقات بين الدوال.

علامة التبويب من أسفل إلى أعلى.

علامة التبويب "شجرة المكالمات".

كيف نتعامل مع الإيقاف؟

لقد طوّرنا نموذجًا أوليًا ونشرنا طلب التعليقات (RFC) علنًا على GitHub لطلب الملاحظات من المطوّرين.

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

نعمل تدريجيًا على إيقاف محلّل JavaScript بشكل تدريجي في 4 مراحل لمنح المطوّرين الوقت الكافي لتعديله واعتماده.

المشاكل الرئيسية وكيفية حلّها

من بين الملاحظات التي تلقّيناها، تمحورت أكثر المخاوف إلحاحًا حول ثلاث مشاكل رئيسية:

  • توافق مع تنسيق .cpuprofile للملف: يستخدم أداة تحليل JavaScript تنسيق ملف مختلفًا. ومن المفترض أن تكون لوحة الأداء متوافقة.
  • بطء سرعة التحميل: يبدو أن سرعة تحميل اللوحة بطيئة، مما يتداخل مع عملية التحليل.
  • أداة اختيار الجهاز الافتراضي JavaScript غير متوفّرة. عدم توفّر إمكانات تحليل محدودة لأداة اختيار مثيل JavaScript للجهاز الافتراضي في سيناريوهات معيّنة.

لنلقِ نظرة على كل مشكلة من هذه المشاكل ونتعرّف على كيفية إصلاحها.

سرعة التحميل بطيئة

أخبرَنا المطوّرون أنّ لوحة الأداء استغرقت وقتًا طويلاً جدًا لتحميل ملفات البيانات الكبيرة، وقد تعطّلت أحيانًا.

استخدمنا "أدوات مطوري البرامج" لتحليل "أدوات مطوري البرامج" (نطلق عليها اسم "أدوات مطوّري البرامج في منصات مطوّري البرامج"). لقد رصدنا مشاكل وأجرينا عدة تحسينات:

  • تم استبدال Set ببنية بيانات Array.
  • تمت إزالة بُنى بيانات Map غير الضرورية.
  • تمت إعادة ضبط الدوال التكرارية إلى نموذج تكراري (للتكرارات) لتقليل استخدام تكديس الذاكرة.

ومن خلال إصلاح هذه المؤثِّرات، تمكّنا من زيادة سرعة تحميل الملفات الكبيرة بنسبة% 80. 🎉

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

أداة اختيار الأجهزة الافتراضية التي تستخدم JavaScript

لم يتضمّن النموذج الأولي الأوّلي أداة اختيار الجهاز الافتراضي JavaScript. ويستخدمها المطوّرون للتوغّل والتركيز على تحليل مثيل جهاز افتراضي معيّن.

أضفنا الآن أداة اختيار الأجهزة الافتراضية التي تستخدم JavaScript إلى لوحة الأداء. يعرض الجدول قائمة منسدلة بجميع مثيلات الأجهزة الافتراضية المتوفّرة في JavaScript. عند اختيار مثيل، تحمِّل لوحة الأداء الملف التعريفي لوحدة المعالجة المركزية (CPU) لذلك المثيل المحدَّد.

علامة التبويب "شجرة المكالمات".

إتاحة استخدام تنسيق الملف cpuprofile

في السابق، لم تكن لوحة الأداء متوافقة إلا مع ملفات التتبُّع، وهي ملفات JSON تتضمّن مجموعة من أحداث التتبُّع.

من ناحية أخرى، يتوافق أداة تحليل JavaScript مع الملفات الشخصية لوحدة المعالجة المركزية (CPU)، وهي ملفات بامتداد .cpuprofile تحتوي على كائن JSON. وهي تبدو كالتالي:

{
    // The list of profile nodes. First item is the root node.
    nodes: ProfileNode[];
    // Profiling start timestamp in microseconds.
    startTime: number;
    // Profiling end timestamp in microseconds.
    endTime: number;
    // Ids of samples at top nodes.
    samples?: integer[];
    // Time intervals between adjacent samples in microseconds.
    // The first delta is relative to the profile startTime.
    timeDeltas?: integer[];
}

من المفترض ألّا يمنع سير العمل الجديد المطوّرين من تحليل cpuprofile الحالية. وبالتالي، أصبحت لوحة الأداء متوافقة الآن مع كل من ملفات التتبُّع والملفات الشخصية لوحدة المعالجة المركزية (CPU). يمكنك استيراد ملف cpuprofile إلى حملة الأداء وسيتم تحميله بشكلٍ صحيح.

وخلف الكواليس، نكتشف الاختلافات في بنية الكائنات باستخدام تعبير عادي. إذا كان محتوى الملف يبدأ بـ {"nodes":[، سيكون الملف الشخصي لوحدة المعالجة المركزية (CPU). وبخلاف ذلك، يكون ملف تتبُّع.

بعد تحديد نوع المحتوى، نعالجه وفقًا لذلك. بالنسبة إلى ملف التتبُّع، نحلّل الأحداث وننشئ جدولاً زمنيًا. بالنسبة إلى الملف الشخصي لوحدة المعالجة المركزية (CPU)، نحلّل كائن JSON وننشئ مخططًا لهبّته.

الخلاصة

يمكنك استخدام لوحة الأداء للحصول على تجربة تحليل أكثر سلاسة، لكل من المواقع الإلكترونية وتحليل أداء وحدة المعالجة المركزية في تطبيقات Node.js وDeno.

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

تنزيل قنوات المعاينة

يمكنك استخدام إصدار Canary أو إصدار مطوّري البرامج أو الإصدار التجريبي من Chrome كمتصفّح تلقائي للتطوير. تتيح لك قنوات المعاينة هذه الوصول إلى أحدث ميزات "أدوات مطوري البرامج" واختبار واجهات برمجة التطبيقات المتطورة للأنظمة الأساسية على الويب والعثور على المشاكل في موقعك الإلكتروني قبل المستخدمين.

التواصل مع فريق "أدوات مطوري البرامج في Chrome"

يُرجى استخدام الخيارات التالية لمناقشة الميزات والتغييرات الجديدة في المشاركة أو أي موضوع آخر ذي صلة بـ "أدوات مطوري البرامج".

  • يمكنك إرسال اقتراحات أو ملاحظات إلينا عبر crbug.com.
  • يمكنك الإبلاغ عن مشكلة في "أدوات مطوري البرامج" باستخدام خيارات إضافية   المزيد > مساعدة > الإبلاغ عن مشاكل في "أدوات مطوري البرامج" في "أدوات مطوري البرامج".
  • يمكنك نشر تغريدة على @ChromeDevTool.
  • يمكنك إضافة تعليقات على الميزات الجديدة في فيديوهات YouTube أو نصائح حول أدوات مطوّري البرامج في فيديوهات YouTube حول الميزات الجديدة.