هل هناك طريقة لقياس وقت التحليل في PHP؟
-
07-07-2019 - |
سؤال
يعد تحسين كود PHP من خلال قياس الأداء في وقت التشغيل أمرًا مباشرًا.تتبع أوقات $start و$end عبر microtime() حول كتلة التعليمات البرمجية - أنا لا أبحث عن إجابة تتضمن استخدام microtime().
ما أود القيام به هو قياس الوقت الذي يستغرقه PHP للاستعداد لتشغيل التعليمات البرمجية الخاصة به - وقت بناء الكود / تحليل الكود التشغيلي.تفكيري هو أنه على الرغم من أنه من السهل تضمين () كل فصل دراسي تقوم به قد تحتاج إلى كل صفحة لديك على موقع ما، فلا يمكن أن يكون الحمل الزائد لوحدة المعالجة المركزية "مجانيًا".أود أن أعرف كم هو وقت التحليل "باهظ الثمن".
أفترض أن ذاكرة التخزين المؤقت لرمز التشغيل مثل APC موجودة لا جزء من السيناريو.
هل سأكون على صواب في أن قياس وقت التحليل في PHP هو أمر يجب أن يحدث في mod_php؟
يحرر:إذا أمكن، مع الأخذ بعين الاعتبار $_SERVER['DOCUMENT_ROOT']
الاستخدام في الكود سيكون مفيدًا.قد تتطلب حلول الأوامر بعض التعديلات للقيام بذلك (لكنها تظل إجابات قيمة).
المحلول
نعم.هنالك.
<?php return; rest of the code ?>
أو
<?php whole code; $%^parse erorr!@! ?>
ثم قارن وقت تشغيل البرنامج النصي الفارغ
time php empty.php
مع مرور الوقت، يستغرق تشغيل (أو فشل) البرنامج النصي العادي مع الإضافات التي ذكرتها أعلاه:
time php test.php
لقد استخدمت هذه الطريقة على الملفات الكبيرة ويمكن لـ PHP5.3 على Core2Duo 2.4Ghz تحليل ما بين 1.5 و4.5 ميجابايت من كود PHP في الثانية (يعتمد ذلك كثيرًا على مدى تعقيد الكود بالطبع).
نصائح أخرى
بالنسبة للمستوى التفصيلي للتحليل الذي تبحث عنه، يبدو أن تطبيق Xdebug (http://xdebug.org/) سيمنحك أعظم المعلومات دون الاضطرار إلى تقطيع التعليمات البرمجية الخاصة بك إلى أجزاء مجزأة.
يمكن أن تكون إحدى الطرق هي توقيت تنفيذ البرنامج النصي من سطر الأوامر.
في لينكس على سبيل المثال:
$ time php5 -r 'echo "Hello world";'
Hello world
real 0m1.565s
user 0m0.036s
sys 0m0.024s
هل هذا يساعد على الإطلاق؟ربما يكون ذلك مفيدًا لاكتشاف الأوقات النسبية بين البرامج النصية المختلفة، ولكنه قد لا يكون مؤشرًا على الوقت المستغرق من خلال وحدة Apache