مقارنة جلسات عمل ملفات التعريف في XHProf Admin

يتحدث المقال عن أداة ملائمة لمقارنة الجلسات الخاصة بتوصيف كود PHP ، مما جعل من الممكن العثور بسرعة على الاختناقات في مشروع على Bitrix CMS.


من بعيد


في يوليو ، تم تحديث Bitrix إلى أحدث إصدار في ذلك الوقت ... وسرعة تحميل الصفحة انخفضت: في مكان ما بنسبة 20 ٪ ، في مكان ما بنسبة 300 ٪. خاصة في مراحل طلب العملاء.


الأرقام مؤثرة وحزينة. لماذا المحدثة؟


الصلبة |


أي كان هناك خطر من أننا إذا لم نقم بالتحديث ، فسيتعين علينا حل مشكلتين في وقت واحد: في الواقع تحديث Bitrix وتحديث قاعدة الكود الخاصة بنا إلى PHP> 7.1.


سبب الفرامل


سبب أكبر الفرامل ، كما اتضح ، هو منطق الكود الجديد للعمل مع ملفات تعريف التسليم. وفقًا للرمز ، فعلوا ذلك بشكل صحيح ، أو شيء: ظهرت الشحنات ككيانات منفصلة. الآن يمكن إرسال الطلب في العديد من الشحنات (مع خصائصه الخاصة من حيث التكلفة وطريقة التسليم وتكوين البضائع).


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


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


XHProf الادارية


تحت تصرفنا كان بروفيل شعبية من Facebook - XHProf. تتعلق المساوئ التي تحول دون تشغيل الأداة بـ GUI الخاص بها:


  • عدم وجود التنقل واضحة بين جلسات التنميط
  • عدم القدرة على مقارنة أكثر من جلستين في وقت واحد خارج نفس مساحة الاسم.
  • لا يمكنك تقديم تعليقات عليها في قائمة الجلسات. بعد الجلسة العاشرة ، نسيت بالفعل التغييرات التي تتعلق بنتائج ملفات التعريف السابقة.

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


تركيب


وصلة إلى المشروع


لن أصف كيفية تثبيت XHProf وملف التعريف ، فهناك على الأقل بعض البرامج التعليمية الجيدة على Habré.


لتثبيت XHProf Admin ، ضع مجلد xhprof_admin في مجلد xhprof_html الخاص بـ XHProf الأصلي. أو استنساخ المشروع بأكمله (يحتوي بالفعل على كل من XHProf و GUI الجديد).


ثم افتح الصفحة <المسار إلى xhprof> / xhprof_html / xhprof_admin /
إذا تم تمكين التعيين ، كما هو موصى به في الوثائق ، فستحتاج إلى فتح <المسار إلى xhprof> / xhprof_admin /


الصفحة الرئيسية


N


يحتوي على:


  • قائمة جميع جلسات التنميط مرتبة حسب التاريخ
  • حقول تعليق الجلسة
  • الغربان التي يمكنك من خلالها تحديد جلسات لحذفها أو مقارنتها أو تجميعها
  • رابط لتقرير جديد
  • روابط للتقرير الأصلي و callgraph
  • حقول وزن الدورة لـ Diff و التجميعية
  • حقل يحدد التسلسل الذي سيتم عرض الجلسات فيه في وضع المقارنة وأيضًا في وضع Diff
  • أزرار:
    • مقارنة - مقارنة الجلسات المحددة (تقرير جديد)
    • الفرق - تقرير قياسي لمقارنة الجلسات في مساحة اسم واحدة
    • تجميع - تقرير قياسي مع تجميع الجلسة في مساحة اسم واحدة
    • حفظ التعليقات المخصصة - يحفظ التعليق للجلسة (في ملف منفصل)
    • حذف أشواط مختارة - حذف ملفات الجلسة وتعليق الملفات
    • رابط إلى صفحة قائمة الجلسة الأصلية

عرض التقرير الأصلي ، تشغيل Diff ، التشغيل الكلي ، عرض callgraph - الميزات الأصلية لـ XHProf GUI - لن أصفها. لا أستطيع إلا أن أقول إن XHProf Admin يتيح لك التنقل بسهولة إليها ، بدلاً من تجميع الروابط يدويًا.


قارن أشواط


الصلبة |


تقرير جديد يسمح لك بتقييم النمو أو الانحدار في الإنتاجية بسرعة.
لاستخدامها ، على الصفحة الرئيسية:


  • حدد الجلسات التي نريد مقارنتها.
  • قمنا بتعيين حقل الفرز "فرز" لتحديد الترتيب الذي يتم عرض الجلسات به: كلما كانت قيمة الحقل أصغر ، كلما كانت الجلسة في وقت مبكر. سيتم اعتبار الجلسة الأولى كقاعدة واحدة - سيتم مقارنة جميع الجلسات اللاحقة بها.
  • إذا كنا نريد عرض متوسط ​​قيم المقاييس ، فعليك تحديد "إظهار المتوسط".
  • انقر فوق "مقارنة".
    الصلبة |

لا يُظهر التقرير النسبة المئوية التي "تشغلها" الوظيفة لكل قياس حتى لا تشوش الصفحة ، بل تعرض القيم المطلقة. إذا كان هناك اختلاف بأكثر من 1٪ في المقياس الخاص بالوظيفة التي يتم تصنيفها بين الجلسة الأساسية والجلسة التالية ، فسيظهر ذلك بوضوح: الأخضر يشير إلى التحسن ، الأحمر يشير إلى الانحدار.


بشكل افتراضي:


  • يعرض التقرير أول 100 وظيفة. إذا كنت بحاجة إلى المزيد ، انقر فوق "عرض الكل".
  • يتم فرز البيانات حسب "مدفوع. وقت الجدار (microsec) "" ، لكن يمكنك النقر فوق أي مقياس والفرز به.

لاستبعاد جلسة من التقرير ، انقر فوق "استبعاد".


الفرز حسب كل قياس متاح - فقط اضغط على عنوان العمود.


لعرض متوسط ​​القيم لجميع الجلسات المحددة ، انقر فوق "إظهار متوسط ​​القيم".


للتنقل على إحدى الوظائف ، يمكنك النقر فوق إحدى الخلايا عند تقاطع الوظيفة والقياس الموضح في الجلسة.


الصلبة |


مثال للاستخدام


  1. بدأنا التعريف في الكود المصدري. فتحنا قائمة الجلسات وأضفنا تعليقًا عليها.
  2. بدأنا منشئ ملفات التعريف على الكود المحسن. وأضاف أيضا تعليق.
  3. هل البند 2 عدة مرات.
  4. ثم فتحنا قائمة جلسات التوصيف ، وحددنا جميع الجلسات بالتتابع ونقرنا على المقارنة.
  5. نظرنا إلى التغييرات.
  6. قرروا ماذا لتسريع.

يستخدم XHProf Admin بسهولة لتحديد الوظائف الثقيلة شائعة الاستخدام التي يؤديها مستخدم واحد. على سبيل المثال ، في Bitrix ، عند تقديم طلب عند الانتقال من مرحلة إلى أخرى (التسليم ، والدفع ، وجهات الاتصال ، وما إلى ذلك) في كل مرة يتم استدعاء عدد من الوظائف للتحكم في سلامة السلة ، وما إلى ذلك. يتم تحديد هذه المراحل بشكل منفصل ثم يتم عرضها معًا في التقرير مقارنة. يمكن تخزين نتائج هذه الوظائف مؤقتًا ، مما يسرع بشكل كبير من وقت الانتقال من مرحلة إلى أخرى.


يؤدي


نتيجة لذلك ، قمنا بتسوية انخفاض السرعة في مراحل تقديم طلب عند تحديث Bitrix ، مع تحليل أقسام أخرى من الموقع في وقت واحد وتسريعها.
من وقت لآخر ، نستخدم XHProf Admin في المشاريع باعتبارها واجهة المستخدم الرسومية أكثر سهولة.
رابط التوثيق إلى XHProf Admin: اذهب


من يهتم بموضوع تحسين الشفرة وأدواته ، اكتب التعليقات.

Source: https://habr.com/ru/post/ar478858/


All Articles