صفحة 2 من 2 الأولىالأولى 12
النتائج 16 إلى 27 من 27

الموضوع: PHP وتحسين الأداء، لكل داء دواء ..

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


    شكرآ لك يا أستاذ خالد






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


    السلام عليكم

    هل هذة الطريقة أفضل

    كود PHP:
    if($string == '1'){
     
    $data 'content';
     

    أم هذة

    كود PHP:
    ($string == '1')?$data 'content':''







  3. #18
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    مرحباً ...
    أخي أشرف ... شكراً على ردك , وبالنسبه للـSwitch أُفضل إستخدام if ...
    وصحيح كلامك بنسه لكثرة الشروط , سابقاً كنت أكتب ...:

    كود PHP:
    if($text == ""){
    print 
    "NO TEXT";
    }
    else
    {
    if(
    $mail == ""){

    print 
    "NO MAIL";

    أما الآن بدأت اختصرها هكذا :
    كود PHP:
    if($text == "" OR $msg == "" OR $color == "" OR Room == ""){
    print 
    "Some Value Are Empty";

    فـهل هذا أسرع ؟

    ولم تجواب عن سؤالي بخصوص mysql_free_result و unset
    ولك جزيل الشكر ... الله يوفقك ويزيدك علماً .






  4. #19
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    148


    صراحة موضوع مميز ومثل هاته المواضيع تستحق أن تتثبت لأجل غير محدد لما لها من فائدة
    شكرا لك أخي أشرف على فتح الموضوع وتثبيته
    بالنسبة للأخ ff5006 أعتقد بأن طريقة الشرط الثاني هي الطبيعية واللازمة وهي أحسن من الطريقة الأولى






  5. #20
    عضو جديد
    تاريخ التسجيل
    Jul 2008
    المشاركات
    24


    مشكور على الموضوع المفيد






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


    السلام عليكم ورحمة اللة وبركاتة

    لدى مشكلة قمت ببرمجة نظام للقوالب ويعمل معى جيدا

    لاكن أريد تحسين الأداء

    بة عيب واحد عند دخول أعداد كبيرة للموقع يحصل بطى فى الموقع

    وانا أتوقع ان المشكلة بسبب فك $GLOBALS

    هذا مثال لفهم المشكلة ولاكن مش النظام

    كود PHP:
    <?
     
    class temp{
     
    function 
    worktemp(){
     
    extract($GLOBALS);
     
    }
     
    }
     
    ?>
    ما فكرت بة أن أخلى المتغيرات فى النظام تعمل هكذا

    $GLOBALS['variable'];

    وعدم فك GLOBALS

    لاكن واجهتنى مشكلة أذا كان لدى مصفوفة وعند كتابتها هكذا

    $arr['data']

    كيف أدخلها فى globals

    وهل هذة الجملة تأخذ وقت أطول لأنى أستخدمها فى الرئيسية

    كود PHP:
    <?
     
    if(file_exists('./includes/text.php')){
    echo 
    'error';
    }else{
    include(
    './includes/text.php');
    }
     
    ?>

    وكل عام وأنتم بخير





    التعديل الأخير تم بواسطة tech ; 24-08-2008 الساعة 04:29 AM

  7. #22
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    104


    السلام عليكم ورحمة الله وبركاته
    شكراً أخي أشرف على هذا الموضوع المهم ونحب نتعلم أكثر عن تحسين الأداء

    السلام عليكم ورحمة اللة وبركاتة

    لدى مشكلة قمت ببرمجة نظام للقوالب ويعمل معى جيدا

    لاكن أريد تحسين الأداء

    بة عيب واحد عند دخول أعداد كبيرة للموقع يحصل بطى فى الموقع

    وانا أتوقع ان المشكلة بسبب فك $GLOBALS

    هذا مثال لفهم المشكلة ولاكن مش النظام
    الأخ tech

    يمكنك إدخال المصفوفه $arr['data'] داخل $GLOBALS (مصفوفة داخل مصفوفة) بالطريقة التالية:

    كود PHP:
    $GLOBALS['date'] = $arr['data']; 
    وعند إستخراج القيم بإستخدام الطريقة التالية

    كود PHP:
    print_r($GLOBALS['date']); 
    خالص تحياتي






  8. #23
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    أتمنى أن يعذرني الجميع لانشغالي هذه الأيام بشكل كبير ..

    اقتباس المشاركة الأصلية كتبت بواسطة tech
    السلام عليكم

    هل هذة الطريقة أفضل

    كود PHP:
    if($string == '1'){
     
    $data 'content';
     

    أم هذة

    كود PHP:
    ($string == '1')?$data 'content':''
    وعليكم السلام،

    الطريقتان قريبتان في جودة أداءيهما، مع ملاحظة فارق بسيط في بعض الأحيان قد يصل إلى أن تكون الطريقة الأولى أسرع من الثانية بحوالي 1.38 .. لكني لا زلت أكرر، فارق الأداء بينهما ليس بالفارق الكبير .. استخدم الصيغة التي تراها مناسبة في موضع برمجتك .. ولا غنى عن أي منهما ..

    لكن أما تساءلت عن الطريقة الاعتيادية الأخرى في كتابة الشروط، مثلاً:
    كود PHP:
        if ($string == '1')     $data 'content';
        else echo 
    ''
    فقد تبيّن أن هذه الطريقة أسرع من الطريقة الأسرع بين الطريقتين السابقتين بـ 3.5 مرة تقريباً .. هذا يعني أنها أولى الطرق بالاستخدام بين الطريقتين السابقتين .. لكني أكرر ثانية، كل صيغة واستخدامها ..

    وشكراً لمشاركتك النقاش ..

    اقتباس المشاركة الأصلية كتبت بواسطة ff5006
    مرحباً ...
    أخي أشرف ... شكراً على ردك , وبالنسبه للـSwitch أُفضل إستخدام if ...
    وصحيح كلامك بنسه لكثرة الشروط , سابقاً كنت أكتب ...:

    كود PHP:
    if($text == ""){
    print 
    "NO TEXT";
    }
    else
    {
    if(
    $mail == ""){
     
    print 
    "NO MAIL";

    أما الآن بدأت اختصرها هكذا :
    كود PHP:
    if($text == "" OR $msg == "" OR $color == "" OR Room == ""){
    print 
    "Some Value Are Empty";

    فـهل هذا أسرع ؟

    ولم تجواب عن سؤالي بخصوص mysql_free_result و unset
    ولك جزيل الشكر ... الله يوفقك ويزيدك علماً .
    أهلاً بك عزيزي .. ولا شكر على واجب ..

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

    هذه الناحية ليست في الحقيقة موضع تركيز في البرمجة بلغة PHP ، لكني أفضل تعداد الشروط بحسب حاجتي لها .. لأن الفروق تكاد لا تذكر في سرعة الأداء ..

    بخصوص mysql_free_result و unset ، فاعذرني فقد سهوت عنها وأخذني الحديث فأنسانيها الشيطان أن أذكرها ..

    هذه الدوال ستعمل على تفريغ الذاكرة من النتائج أو المتغيرات التي لا تحتاجها، برأيك هل هذا سيسرّع عمل السكربت؟ هذا فعلياً سيخفف من الضغط على السكربت، وبالتالي سيجعل عملية الوصول للبيانات أسرع بالنسبة للأطراف الأخرى نظراً لخفة السكربت، لكن هذه الدوال قد تستغرق وقتاً في التنفيذ وتبطئ عمل الكود أحياناً ..

    عموماً هي مهمة للمواقع الكبيرة التي عليها أن تتحمل ضغط الزوار المستمر وجلب البيانات، إلى جانب أنظمة الكاش بالطبع .. ..

    وأهلاً بك أنرت موضوعي بزيارتك ..

    اقتباس المشاركة الأصلية كتبت بواسطة php-man
    صراحة موضوع مميز ومثل هاته المواضيع تستحق أن تتثبت لأجل غير محدد لما لها من فائدة
    شكرا لك أخي أشرف على فتح الموضوع وتثبيته
    بالنسبة للأخ ff5006 أعتقد بأن طريقة الشرط الثاني هي الطبيعية واللازمة وهي أحسن من الطريقة الأولى
    شكراً لردك عزيزي .. قمت بفتح الموضوع بهدف بدء النقاش بين الأعضاء وهذا ما قد حصل بالفعل إلا أنني تأخرت في الرد معتذراً لكم ..

    ملاحظة: لست من قام بتثبيت الموضوع حيث أن صلاحياتي في القسم لا تعني تثبيت مواضيعي .. المواضيع تثبّت برأيي حسب أهميتها لدى بقية المشرفين ..

    وشكراً لك مرة أخرى لزيارتك الموضوع وتعقيبك ..

    اقتباس المشاركة الأصلية كتبت بواسطة abdalla
    مشكور على الموضوع المفيد
    واجبي ..

    اقتباس المشاركة الأصلية كتبت بواسطة tech
    السلام عليكم ورحمة اللة وبركاتة

    لدى مشكلة قمت ببرمجة نظام للقوالب ويعمل معى جيدا

    لاكن أريد تحسين الأداء

    بة عيب واحد عند دخول أعداد كبيرة للموقع يحصل بطى فى الموقع

    وانا أتوقع ان المشكلة بسبب فك $GLOBALS

    هذا مثال لفهم المشكلة ولاكن مش النظام

    كود PHP:
    <?
     
    class temp{
     
    function 
    worktemp(){
     
    extract($GLOBALS);
     
    }
     
    }
     
    ?>
    ما فكرت بة أن أخلى المتغيرات فى النظام تعمل هكذا

    $GLOBALS['variable'];

    وعدم فك GLOBALS

    لاكن واجهتنى مشكلة أذا كان لدى مصفوفة وعند كتابتها هكذا

    $arr['data']

    كيف أدخلها فى globals

    وهل هذة الجملة تأخذ وقت أطول لأنى أستخدمها فى الرئيسية

    كود PHP:
    <?
     
    if(file_exists('./includes/text.php')){
    echo 
    'error';
    }else{
    include(
    './includes/text.php');
    }
     
    ?>

    وكل عام وأنتم بخير
    وعليكم السلام ورحمة الله وبركاته، أهلاً مرة أخرى ههه ..

    جرب هذا:
    كود PHP:
    $GLOBALS['arr']['data']; 
    أتمنى أن يكون هذا قصدك، يمكنك كذلك تمرير البيانات من خلال باراميتر للفنكشن ..

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

    السلام عليكم ورحمة اللة وبركاتة

    لدى مشكلة قمت ببرمجة نظام للقوالب ويعمل معى جيدا

    لاكن أريد تحسين الأداء

    بة عيب واحد عند دخول أعداد كبيرة للموقع يحصل بطى فى الموقع

    وانا أتوقع ان المشكلة بسبب فك $GLOBALS

    هذا مثال لفهم المشكلة ولاكن مش النظام
    الأخ tech

    يمكنك إدخال المصفوفه $arr['data'] داخل $GLOBALS (مصفوفة داخل مصفوفة) بالطريقة التالية:

    كود PHP:
    $GLOBALS['date'] = $arr['data']; 
    وعند إستخراج القيم بإستخدام الطريقة التالية

    كود PHP:
    print_r($GLOBALS['date']); 
    خالص تحياتي
    وعليكم السلام ورحمة الله وبركاته، أهلاً بك عزيزي ولا شكر على واجب ..

    شكراً لمداخلتك وتعليقك وننتظر إضافاتك ..

    ختاماً، اعذروني مرة أخرى لتأخري في الرد أولاً ، ثم لأنني أكاد أنام على لوحة مفاتيحي من شدة النعس والتعب، يعني لاحد يلومني إذا كنت أخبّص فووق ^^ ..

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

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

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


    هذه الموضوع ايضا يتكلم عن نفس موضوعنا : الدكتور نت
    استخدام علامتي التنصيص للوصول لحقل في المتسلسلة 7 مرات اسرع بدونها و سبب بسيط كلاتي :
    لو انك قمت بكتابة الجمله البسيطه التاليه
    كود PHP:
    echo 'hello world ' 
    سيقوم المفسر - interpreter - باعتبارها نص و طباعتها مباشره
    اما في حالة كتابتك للجمله التاليه
    كود PHP:
    echo "hello world" 
    فسيقوم المفسر بلبحث عن special characters و متغيرات وعمل عملية parsing وبتالي يتطلب ذلك وقتا اضافيا.






  10. #25
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    هذه الموضوع ايضا يتكلم عن نفس موضوعنا : الدكتور نت
    استخدام علامتي التنصيص للوصول لحقل في المتسلسلة 7 مرات اسرع بدونها و سبب بسيط كلاتي :
    لو انك قمت بكتابة الجمله البسيطه التاليه
    كود PHP:
    echo 'hello world ' 
    سيقوم المفسر - interpreter - باعتبارها نص و طباعتها مباشره
    اما في حالة كتابتك للجمله التاليه
    كود PHP:
    echo "hello world" 
    فسيقوم المفسر بلبحث عن special characters و متغيرات وعمل عملية parsing وبتالي يتطلب ذلك وقتا اضافيا.
    شكراً أخي أحمد لمرورك وتعقيبك ..

    بخصوص كلامك فبصراحة لا أدري أنت تطرقت لموضوعين في آن واحد ..

    أحدهما استدعاء عنصر من مصفوفة بلا علامات تنصيص .. وهذا كنت قد تطرقت له تفصيلاً في الموضوع ..

    والآخر هو المثال الموجود في ردك، وهذا كنت قد تطرقت له إجمالاً في الموضوع ..

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

    شكراً لإضافتك، وننتظر المزيد ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

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


    اخي اشرف , انا وضعت مثال البسيط فقط لتوضيح امور الامر نفس ينطبق على متسلسلات للوصل اليها مثلا
    كود PHP:
    $ar['asc'
    سيكون اسرع من
    كود PHP:
    $ar["asc"
    شكرا لتعقيبك و كل عام اونتم بخير بمناسبة شهر رمضان المبارك..





    التعديل الأخير تم بواسطة احمد شكر ; 31-08-2008 الساعة 01:35 AM

  12. #27
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    اخي اشرف , انا وضعت مثال البسيط فقط لتوضيح امور الامر نفس ينطبق على متسلسلات للوصل اليها مثلا
    كود PHP:
    $ar['asc'
    سيكون اسرع من
    كود PHP:
    $ar["asc"
    شكرا لتعقيبك و كل عام اونتم بخير بمناسبة شهر رمضان المبارك..
    صحيح كذلك،
    يعطيك العافية، وانت بألف خير ..





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!





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

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

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