0Pricing
PHP Academy · درس

تحليل أداء PHP باستخدام Xdebug

مكّنوا تحليل أداء Xdebug وحلّلوا مخرجات callgrind للعثور على الدوال البطيئة

تحليل أداء PHP باستخدام Xdebug درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

ما هو Xdebug؟

Xdebug هي إضافة لـ PHP توفّر إمكانات تصحيح الأخطاء وقياس تغطية الشيفرة وتحليل الأداء. ويسجّل محلّل الأداء المدة التي يستغرقها كل استدعاء لدالة وعدد مرات استدعائها.

تثبيت Xdebug

ثبّتها عبر PECL أو مدير الحزم.

# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep Xdebug

تمكين محلّل الأداء

اضبط Xdebug في php.ini لتمكين تحليل الأداء.

# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%t

تحليل الأداء المستند إلى المُشغّل

بدلًا من تحليل كل طلب، استخدم مُشغّلًا لتحليل الطلب عند الحاجة.

# php.ini
xdebug.mode=profile
xdebug.start_with_request=trigger

# Trigger via query parameter or cookie:
curl "https://example.com/?XDEBUG_PROFILE=1"

مخرجات Callgrind

يكتب Xdebug ملفًا باسم cachegrind.out.*. وتقرأ أدوات التصور الخاصة بتحليل الأداء هذا التنسيق.

التحليل باستخدام KCachegrind / QCachegrind

افتح ملف callgrind في KCachegrind (Linux) أو QCachegrind (macOS/Windows) لعرض عدد استدعاءات الدوال والوقت الإجمالي والوقت الذاتي وشجرة الاستدعاءات.

التحليل باستخدام WebGrind

WebGrind هو عارض لملفات callgrind يعمل في المتصفح، وإعداده أسهل من إعداد أداة سطح مكتب.

$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmp

قراءة مخرجات محلّل الأداء

ابحث عن الدوال ذات أعلى «تكلفة شاملة» (الوقت الإجمالي بما في ذلك الدوال المستدعاة) مقارنةً بـ«التكلفة الذاتية» (الوقت المستغرق في جسم الدالة فقط). وتكشف التكلفة الذاتية عن عنق الزجاجة الفعلي.

أعناق الزجاجة الشائعة

من النتائج المعتادة: استعلامات قاعدة البيانات من نوع N+1، والتعبيرات النمطية غير الفعّالة، واستدعاءات API المتكررة، وعلاقات Eloquent غير المحسّنة، وعرض القوالب المكلف.

تحليل الأداء مقابل تصحيح الأخطاء

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

Blackfire كبديل

Blackfire.io هي أداة تجارية لتحليل الأداء، وتوفّر واجهة استخدام متقنة وتكاملًا مع CI وتأكيدات للأداء. وتُفضَّل في بيئات الفرق على تحليل الأداء الخام باستخدام Xdebug.

ملخّص

مكّن نمط تحليل الأداء في Xdebug داخل php.ini، ثم شغّل طلبًا وافتح ملف callgrind في KCachegrind أو WebGrind. ركّز على الدوال ذات أعلى تكلفة شاملة وتكلفة ذاتية للعثور على أعناق الزجاجة.

تحقق سريع

ماذا تعني «التكلفة الذاتية» في تقرير محلّل الأداء؟

الأسئلة الشائعة

هل درس «تحليل أداء PHP باستخدام Xdebug» مجاني؟

نعم — نص درس «تحليل أداء PHP باستخدام Xdebug» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «تحليل أداء PHP باستخدام Xdebug»؟

مكّنوا تحليل أداء Xdebug وحلّلوا مخرجات callgrind للعثور على الدوال البطيئة تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «تحليل أداء PHP باستخدام Xdebug»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

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

جميع الدروس في هذه الدورة

  1. تحليل أداء PHP باستخدام Xdebug
  2. OPcache: التخزين المؤقت للرمز الثانوي
  3. تحسين استعلامات قاعدة البيانات
  4. إدارة الذاكرة ونصائح الأداء
← العودة إلى PHP Academy