سؤال

يعد تحسين كود 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top