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

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

لماذا نوقف أداة "تحليل JavaScript" نهائيًا؟ (محلل JavaScript)

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

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

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

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

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

  • استخدِم مخطّط اللهب لتحديد العوامل التي تؤثّر سلبًا في الأداء.

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

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

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

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

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

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

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

نحن بصدد إيقاف أداة JS Profiler تدريجيًا في 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"

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