elalbab ، مهندس مصرى ، وضاء ، vBman مرحبا بكم اخواني، جزاكم الله خيرا على القراءة و المتابعة.
وضاء: سوف يتم الاعداد لها من الحال لتنزل في اقرب وقت باذن الله.
elalbab ، مهندس مصرى ، وضاء ، vBman مرحبا بكم اخواني، جزاكم الله خيرا على القراءة و المتابعة.
وضاء: سوف يتم الاعداد لها من الحال لتنزل في اقرب وقت باذن الله.
__________________
محمد حمود.
ما البديل لاخفاء الخطأ
22- استخدام @ قبل الدالة بغرض إخفاء الخطأ الناتج عنها يبطئ عملها كثيرا.
__________________
ابصم
جزاك الله خير
ونحن بانتظار بقية المقالات المفيدة
تقبل تحياتي
__________________
اللهم أعز الاسلام و المسلمين
ما شاء الله
في موضوعك المعلومة ليست المهم.. المهم انك نشرتها
ربنا يحميك
__________________
Ahmed Hassan
Web.Serve
حصر جميل لمعلومات قيمة ، المبرمج المتمكن يسعى دائماً الى تحسين آداء برمجياته ، الشكر الجزيل لشخصكم الكريم ..
__________________
مدونة؟
ما شاء الله
موضوع جميييييل وفيه معلومات حلوة كثير
لكن عندي تعقيب بسيط على النقطة 25 .. استغربت الحقيقة من كون ال foreach اسرع من ال for
لأن حسب معلوماتي فان foreach قبل العمل على اي مصفوفة تقوم الاول باخذ محتويات المصفوفة كلها ووضعها في مصفوفة اخرى تقوم هي بانشائها .. بينما for تعمل مباشرة على المصفوفة وتغيير محتوياتها ..
ولهذا لو كان عندك مثل هذا الكود :
فان for ستكون اسرع .. كما اعتقدكود PHP:
$arr = array('a','b','c','d');
$n = count($n);
for($i=0;$i<$n;$i++){
echo $arr[$i];
}
foreach($arr AS $value){
echo $value;
}
وكذلك احب ان اضيف نقطة في السطر التالي :
كود PHP:
// يتم وضع قيمة الفنكشن في المتغير
$n = count($arr);
// تتم المقارنة بين متغير ومتغير
for($i=0; $i<$n; $i++)
//هنا تتم المقارنة بين متغير وفنكشن ويتم تنفيذ الفنكشن مع كل دورة من اللووب
// ولهذا فهي ابطأ
for($i=0; $i<count($arr); $i++)
وأحييك على الموضوع الرائع ..
ربنا يبارك فيكم جميعا..
@قمر الشعراء : هناك مبرمجين يكثروا من استعمالها في مواضع لا تحتاج فيها لاخفاء الاخطاء
لذلك وجب التنبيه لاستخدامها في محلها لكن بدون اسراف.
@Egyptechno:
- بخصوص النقطة الاولى كانت لدي وجهة نظر شبيهة بتعليقكم الى ان قطعت الشك باليقين و اجريت عدة اختبارات
هذا اختبار مشابه للكود الي تفضلت بوضعه
النتيجة على جهازي الشخصيكود PHP:
set_time_limit(0);
$arr = range('a','z');
$n = count($arr);
$start1 = microtime(true);
for($v=0;$v<100000;$v++){
for($i=0;$i<$n;$i++){
$m = $arr[$i];
}
}
$start2 = microtime(true);
for($v=0;$v<100000;$v++){
foreach($arr as $value){
$m = $value;
}
}
$end = microtime(true);
echo 'time1: '.($start2-$start1);
echo '<br />';
echo 'time2: '.($end-$start2);
- بخصوص اضافتك فهي فعلا في محلها وكان يجب تعليل السبب من البداية.كود:time1: 0.802357196808 time2: 0.482234954834
جزاك الله خيرا
__________________
محمد حمود.
كلامك صحيح
قمت بالتجربة على جهازي ايضا
وعند التحديث اكثر من مرة كان time1 يتفاوت بين 0.9 و 1.3 بسرعة .. بينما ظل time2 ثابت اغلب الوقت ..كود:time1: 0.93074798584 time2: 0.481743812561
بعد البحث السريع ، يبدو ان هناك اكثر من تعديل تم على foreach في PHP5 بحيث قام بتحسين اداءها بشكل كبير .. ومنها دعم ال references واعتقد ان هذا سبب السرعة .. انها اصبحت تعتمد على ال references او ال pointers في التعامل مع المتغيرات في المصفوفة ..
على اي حال .. شكرا لك
موضوع رائع بورك فيك عزيزي
__________________
اللهم اغفر لي الذنوب التي تهتك العصم
اللهم اغفر لي الذنوب التي تنزل النقم
اللهم اغفر لي الذنوب التي تغير النعم
اللهم اغفر لي الذنوب التي تحبس الدعاء
اللهم اغفر لي الذنوب التي تنزل البلاء .