[php] طريقة برمجة “تم إنشاء الصفحة في 0.20 ثانية”
مدرج تحت قسم: مقالات
29
يناير
2008
اليوم سنتعرف على طريقة برمجة حساب وقت تنفيذ الصفحة. قبل كل شيء علينا أن نفهم أن هذه البرمجة ستكون مقسمة على قسمين:
أولاً: نكتب هذا الكود أعلى الصفحة
$start=microtime();
$start=explode(' ',$start);
$start=$start[1] + $start[0];
ثانياً: هذا الكود يكون أسفل الصفحة يعني بعد أكواد البرنامج
$end=microtime();
$end=explode(' ',$end);
$end=$end[1] + $end[0];
echo " الوقت المستغرق ".round($end-$start,2)." ثانية";
ونستخدمه بهذه الطريقة
<?php
// هذا الكود يوضع اعلى الصفحة
$start=microtime();
$start=explode(' ',$start);
$start=$start[1] + $start[0];
// هنا ينتهي الكود
// هنا تكون أكواد برنامجك
// لنجرب كم سيستغرق طباعة ارقام من 0 الى 100000
$i=0;
while($i<100000){
// ØÈÇÚÉ ÇáãÊÛíÑ
echo $i.'<br>';
$i++;
}
//هنا تنتهي أكواد برنامجك
// يوضع أسفل الأكواد
$end=microtime();
$end=explode(' ',$end);
$end=$end[1] + $end[0];
echo " الوقت المستغرق ".round($end-$start,2)." ثانية";
// هنا ينتهي الكود
?>
كما يمكنك بسهولة جعل هذه الأكواد في كلاس ليسهل استخدامها مستقبلا
الكلاس:
class Turn
{
var $start;
var $end;
function start(){
$start=microtime();
$start=explode(' ',$start);
$this->start=$start[1] + $start[0];
}
function end(){
$end=microtime();
$end=explode(' ',$end);
$this->end=$end[1] + $end[0];
echo " الوقت المستغرق ".round($this->end-$this->start,2)." ثانية";
}
};
وطريقة استخدامها :
<?php
// كلاس احتساب الوقت
class Turn
{
var $start;
var $end;
function start(){
$start=microtime();
$start=explode(' ',$start);
$this->start=$start[1] + $start[0];
}
function end(){
$end=microtime();
$end=explode(' ',$end);
$this->end=$end[1] + $end[0];
echo " الوقت المستغرق ".round($this->end-$this->start,2)." ثانية";
}
};
////////////////////
$nad= new Turn; //تعريف الكلاس
$nad->start(); // بداية احتساب الوقت
$i=0;
while($i<100000){
echo $i.'<br>';
$i++;
}
$nad->end(); // نهاية احتساب الوقت وطباعة الوقت المستغرق
?>
كما يمكن حفظ الكلاس في ملف مثلا class.php
وادراجها مع البرنامج لتقليل عدد السطور البرمجية
<?php
include('class.php');
////////////////////
$nad= new Turn; //تعريف الكلاس
$nad->start(); // بداية احتساب الوقت
$i=0;
while($i<100000){
// ØÈÇÚÉ ÇáãÊÛíÑ
echo $i.'<br>';
$i++;
}
$nad->end(); // نهاية احتساب الوقت وطباعة الوقت المستغرق
?>


السلام عليــكم
شكـراً لـك أخي . . . درس ولا أروع , جزاك الله خيراً.
^_^
السلام عليكم
جزاك الله خير أخي الكريم .
لكن أعتقد ان هناك مشكلع في المثال حيث يظهر ” الوقت المستغرق 0 ثانية “
عادي جدا لان الصفحة استغرقت اقل من ثانية بكثير
مثال:
استغرقت الصفحة 0.002365 ثانية
استخدمت دالة round واعطيته رقم 2 في البرامتر الأخير لتقريب العدد الى 0.00 ولهذا طبع 0 ثانية
جرب تغيير رقم 2 الى 8 وشوف النتيجة
كذلك لو كانت الصفحة كبيرة يكفي اعطاء الرقم 2 ليعطيك الوقت المستغرق
للأسف الكود يعمل لكن لم أفهم آلية عمله الكود مبهم…
الرجاء أن تفسر كل سطر وعمله حتى أستوعب الطريقة أما وضعها هكذا فهي للنسخ فقط وليس للفهم.
شكرا مقدماً
السلام عليكم ورحمة الله وبركاته
أخي الرائع أود أن أشكرك على أسلوبك المميز في إيصال المعلومة
لك كل الود
ماهى منحه التعليم العالى فى وزاره النعليم ومتى يبدء التسجيل سسسسسسسسسسسسسسسسسسسسسسعدووووووووووووووووووووووووووونى
ليس