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

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

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

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

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

ما هي الإجراءات التي يجب اتّخاذها بعد إيقاف الميزة نهائيًا؟

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

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

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

الرسم البياني المفصّل لأداء الرموز

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

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

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

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

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

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

نحن بصدد إيقاف "برنامج تحليل JavaScript" تدريجيًا على 4 مراحل لمنح المطوّرين الوقت الكافي للاكتفاء واستخدام الميزات.

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

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

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

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

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

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

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

  • تم استبدال Set ببنى البيانات Array.
  • أزلنا هياكل بيانات Map غير الضرورية.
  • تمّت إعادة صياغة الدوالّ المتكرّرة إلى دوالّ تكرارية (حلقات for) لتقليل استخدام الذاكرة.

ومن خلال إصلاح هذه المعوقات، تمكنا من تحميل الملفات الكبيرة بنسبة 80% بشكل أسرع. 🎉

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

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

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

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

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

إتاحة تنسيق الملف 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 الحالية. لذلك، تتيح لوحة الأداء الآن كلاً من ملفات التتبّع والملفات التعريفية لوحدة المعالجة المركزية. يمكنك استيراد ملف cpuprofile إلى الأداء وسيتم تحميله بشكل صحيح.

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

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

الخاتمة

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

إذا كانت لديك ملاحظات أو اقتراحات، أضِف تعليقًا على هذا الخطأ أو تواصَل مع أحد الخيارات التالية.

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

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

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

يمكنك استخدام الخيارات التالية لمناقشة الميزات أو التحديثات الجديدة أو أي معلومات أخرى متعلّقة بـ "أدوات مطوري البرامج".