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

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

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

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

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

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

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

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

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

مخطط اللهب.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

لقد أضفنا الآن أداة اختيار جهاز افتراضي للغة 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.

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

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

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

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

استخدِم الخيارات التالية لمناقشة الميزات والتغييرات الجديدة في المشاركة أو مناقشة أي معلومات أخرى متعلّقة بأدوات مطوري البرامج.

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