النتائج 1 إلى 14 من 14

الموضوع: كيفية برمجة “تم انشاء الصفحة في 0.20 ثانية”

  1. #1

    كيفية برمجة “تم انشاء الصفحة في 0.20 ثانية”



    بسم الله الرحمان الرحيم

    اليوم سنتعرف على طريقة برمجة حساب وقت تنفيذ الصفحة

    لازم نفهم ان هذه البرمجة ستكون مقسمة على قسمين

    اولا: نكتب هذا الكود اعلى الصفحة
    كود PHP:

    $start
    =microtime();
    $start=explode(' ',$start);
    $start=$start[1] + $start[0]; 
    ثانيا: هذا الكود يكون اسفل الصفحة يعني بعد اكواد البرنامج

    المزيد ...

    كود PHP:

    $end
    =microtime();
    $end=explode(' ',$end);
    $end=$end[1] + $end[0];

    echo 
    " الوقت المستغرق ".round($end-$start,2)." ثانية"
    ونستخدمه بهذه الطريقة

    كود PHP:

    <?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)." ثانية";
    // هنا ينتهي الكود
    ?>
    كما يمكنك بسهولة جعل هذه الأكواد في كلاس ليسهل استخدامها مستقبلا

    الكلاس:

    كود 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)." ثانية";
    }
    }; 
    وطريقة استخدامها :

    كود PHP:

    <?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:

    <?php
    include('class.php');

    ////////////////////

    $nad= new Turn//تعريف الكلاس

    $nad->start(); // بداية احتساب الوقت

    $i=0;
    while(
    $i<100000){
    // ØÈÇÚÉ ÇáãÊÛíÑ
    echo $i.'<br>';
    $i++;
    }

    $nad->end(); // نهاية احتساب الوقت وطباعة الوقت المستغرق
    ?>
    وهذا مثال عليه





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com




  2. السلام عليكم -
    هذا تعديل في الكود اللذي وضعة الاخ Nadorino.
    سبب التعديل:
    1- استخدام الخواص الجديدة التي اتت مع الاصدار PHP الخامس: الخاصية هو ان تستغل الدالة destruct__ التي تعمل اوتوماتيكيا عندما يتهي عمر البرنامج او الclass
    2- لتقليل السطور المطلوبة لتشغيل الكود الى سطر واحد فقط

    الملف: countTime.php
    كود PHP:

    <?php
    class Turn
    {
      function 
    Turn(){
        
    $this->start $this->addmilli();
      }

      function 
    end(){
        
    $result round(($this->addmilli() - $this->start)*1000,8);
        echo 
    '<!-- Done in '.$result.' Seconds -->';
      }

      function 
    addmilli(){
        
    $temp explode(' ',microtime());
        return   
    $temp[0] + $temp[1];
      }

      function 
    __destruct(){
        
    $this->end();
      }

    }

    $timer = new Turn();
    ?>
    الشرح:
    عندما ينتهي البرنامج او يمسح الclass من الذاكرة .. سيحاول مترجم الPHP ان يبحث عن الدالة ()destruct__ اذا ماكانت موجودة في ذاك الكلاس .. اذا كانت موجودة .. المترجم سيحاول ان يشغلها..

    كيف؟ ليش؟ ولماذا؟
    في لغة ال++C يوجد لكل كلاس destructor وcustructor .. الcustructor هو الدالة التي تبدء في حين تشغيل الclass. والdestructor هو الدالة التي تعمل في حين اغلاق او مسح الclass من الذاكرة.. فمثلا عندنا ينتهي عمل البرنامج، الdestructor يحاول معرفة اذا كانت هناك اي تغيرات في الملف .. اذا كانت هناك تغيرات يسئل المستخدم اذا كان يريد ان يحفظ التغيرات .. وله استخدمات متعددة . ان شاء الله ساشرح ذالك في درس من الدروس

    طريقة الاستخدام: فقط ضع الامر في بداية الملف
    كود PHP:
    include 'countTime.php'
    وسيعمل اوتوماتيكيا





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    55


    بارك الله فيك ياغالي ,,






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    110


    مشكور علي الدرس

    حقيقتا كنت بأسئل عنه

    لكنك سبقتني






  5. #5


    اخي خالد
    بارك الله فيك على الاضافة الرائعة والمهمة خاصة في php5
    جعلت الموضوع اكثر فائدة بردك
    شكرا لك

    أبــو عبدالله,عقل الكمبيوتر
    بارك الله فيكم
    اتمنى ان تستفيدو خاصة من رد الأخ خالد





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  6. #6
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    161


    السلام عليكم
    شكرا اخوي Nadorino

    هذا كود بنفس الفكرة لكن بشكل مختصر :

    كود PHP:
    $start=array_sum(explode(" ",microtime()));

    //محتوى الصفحة

    echo array_sum(explode(" ",microtime()))-$start






    __________________
    سـبـحـان الله، والـحــمــد لله، ولا إلـه إلا الله، والله أكـــبـــــر.

  7. #7
    Banned
    تاريخ التسجيل
    Sep 2004
    المشاركات
    835


    بارك الله فيكم
    بصراحه موضوع مميز
    انا ودي اتعلم البرمجه لكن الوقت ما يسمح
    بالنسبه لي اعرف ابرمج برامج على قد الحال مو كبيره ولا توصل لموقع :P

    تحياتي






  8. #8


    السلام عليكم
    شكرا اخوي Nadorino

    هذا كود بنفس الفكرة لكن بشكل مختصر :

    كود PHP:
    $start=array_sum(explode(" ",microtime()));

    //محتوى الصفحة

    echo array_sum(explode(" ",microtime()))-$start
    نعم طريقة مختصرة في php 4 ولكن يوجد اختصار اكثر في php 5 كما تفضل الأخ هيلابي
    بارك الله فيك على الاضافة الجميلة





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  9. #9


    بارك الله فيكم
    بصراحه موضوع مميز
    انا ودي اتعلم البرمجه لكن الوقت ما يسمح
    بالنسبه لي اعرف ابرمج برامج على قد الحال مو كبيره ولا توصل لموقع :P

    تحياتي
    وفيك بارك اخي
    تعلم تعلم ولو قليلا... مع الوقت تجد نفسك ماشاء الله





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    176


    شكرا






  11. #11
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    176


    شكرا
    على الموضوع






  12. #12
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    57


    بارك الله فيكم
    بصراحه موضوع مميز
    وبجد تعلمت منة كثيرا واشكرك بشدة وننتظر المزيد من التطورات

    شكرا






  13. #13
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    89


    موضوع رائع وشرح مميز وجميل بارك الله فيك





    __________________
    -----------
    |||||||||||||||||||||
    المجموعة العربية للاستضافة والتصميم
    www.hos6.com
    منتدى المحبه
    مجتمع حواري
    www.almhba.com

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    زيادة في الإختصار:

    بدءاً من PHP 5.0.0 تم إضافة بارامتر للدالة اسمه get_as_float من النوع boolean حيث يمكن تمريره للدالة للحصول علي القيمة بالثانية مجموعة علي القيمة بالمايكروثانية دون الحاجة الي فصلهما بدالة explode ثم اعادة جمعهما.

    باختصار يمكن استخدام الدالة كالتالي:

    كود PHP:
    microtime(true
    بدلاً من

    كود PHP:
    array_sum(explode(" ",microtime())) 











ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض