شكرآ لك يا أستاذ خالد
شكرآ لك يا أستاذ خالد
السلام عليكم
هل هذة الطريقة أفضل
أم هذةكود PHP:
if($string == '1'){
$data = 'content';
}
كود PHP:
($string == '1')?$data = 'content':'';
مرحباً ...
أخي أشرف ... شكراً على ردك , وبالنسبه للـ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
ولك جزيل الشكر ... الله يوفقك ويزيدك علماً .
__________________
- موقع مبرّمج.
- موقع قالبي (معرض قوالب عربية و مُعربة ).
-معارض قالبي (أنشى معرضك على الإنترنت مجاناً!)
صراحة موضوع مميز ومثل هاته المواضيع تستحق أن تتثبت لأجل غير محدد لما لها من فائدة
شكرا لك أخي أشرف على فتح الموضوع وتثبيته
بالنسبة للأخ ff5006 أعتقد بأن طريقة الشرط الثاني هي الطبيعية واللازمة وهي أحسن من الطريقة الأولى
مشكور على الموضوع المفيد
السلام عليكم ورحمة اللة وبركاتة
لدى مشكلة قمت ببرمجة نظام للقوالب ويعمل معى جيدا
لاكن أريد تحسين الأداء
بة عيب واحد عند دخول أعداد كبيرة للموقع يحصل بطى فى الموقع
وانا أتوقع ان المشكلة بسبب فك $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
السلام عليكم ورحمة الله وبركاته
شكراً أخي أشرف على هذا الموضوع المهم ونحب نتعلم أكثر عن تحسين الأداء
الأخ techالسلام عليكم ورحمة اللة وبركاتة
لدى مشكلة قمت ببرمجة نظام للقوالب ويعمل معى جيدا
لاكن أريد تحسين الأداء
بة عيب واحد عند دخول أعداد كبيرة للموقع يحصل بطى فى الموقع
وانا أتوقع ان المشكلة بسبب فك $GLOBALS
هذا مثال لفهم المشكلة ولاكن مش النظام
يمكنك إدخال المصفوفه $arr['data'] داخل $GLOBALS (مصفوفة داخل مصفوفة) بالطريقة التالية:
وعند إستخراج القيم بإستخدام الطريقة التاليةكود PHP:
$GLOBALS['date'] = $arr['data'];
خالص تحياتيكود PHP:
print_r($GLOBALS['date']);
أتمنى أن يعذرني الجميع لانشغالي هذه الأيام بشكل كبير ..
وعليكم السلام،المشاركة الأصلية كتبت بواسطة tech
الطريقتان قريبتان في جودة أداءيهما، مع ملاحظة فارق بسيط في بعض الأحيان قد يصل إلى أن تكون الطريقة الأولى أسرع من الثانية بحوالي 1.38 .. لكني لا زلت أكرر، فارق الأداء بينهما ليس بالفارق الكبير .. استخدم الصيغة التي تراها مناسبة في موضع برمجتك .. ولا غنى عن أي منهما ..
لكن أما تساءلت عن الطريقة الاعتيادية الأخرى في كتابة الشروط، مثلاً:
فقد تبيّن أن هذه الطريقة أسرع من الطريقة الأسرع بين الطريقتين السابقتين بـ 3.5 مرة تقريباً .. هذا يعني أنها أولى الطرق بالاستخدام بين الطريقتين السابقتين .. لكني أكرر ثانية، كل صيغة واستخدامها ..كود PHP:
if ($string == '1') $data = 'content';
else echo '';
وشكراً لمشاركتك النقاش ..
أهلاً بك عزيزي .. ولا شكر على واجب ..المشاركة الأصلية كتبت بواسطة ff5006
بالنسبة لتعدد الشروط فمن الأفضل تضمينها في نفس الجملة كما ذكرت في ردك، ولكن في بعض الأحيان إذا كانت الشروط كثيرة أو تحتاج شروطاً مسبقة كي تتحقق ، ينصح بوضعها داخل الشرط الأصلي ، هذا سيجعل تنفيذ الشرط الداخلي [فقط] إذا تحقق الشرط الأصلي .. وقد يزيد بعض الشيء من كفاءة البرنامج ..
هذه الناحية ليست في الحقيقة موضع تركيز في البرمجة بلغة PHP ، لكني أفضل تعداد الشروط بحسب حاجتي لها .. لأن الفروق تكاد لا تذكر في سرعة الأداء ..
بخصوص mysql_free_result و unset ، فاعذرني فقد سهوت عنها وأخذني الحديث فأنسانيها الشيطان أن أذكرها ..
هذه الدوال ستعمل على تفريغ الذاكرة من النتائج أو المتغيرات التي لا تحتاجها، برأيك هل هذا سيسرّع عمل السكربت؟ هذا فعلياً سيخفف من الضغط على السكربت، وبالتالي سيجعل عملية الوصول للبيانات أسرع بالنسبة للأطراف الأخرى نظراً لخفة السكربت، لكن هذه الدوال قد تستغرق وقتاً في التنفيذ وتبطئ عمل الكود أحياناً ..
عموماً هي مهمة للمواقع الكبيرة التي عليها أن تتحمل ضغط الزوار المستمر وجلب البيانات، إلى جانب أنظمة الكاش بالطبع .. ..
وأهلاً بك أنرت موضوعي بزيارتك ..
شكراً لردك عزيزي .. قمت بفتح الموضوع بهدف بدء النقاش بين الأعضاء وهذا ما قد حصل بالفعل إلا أنني تأخرت في الرد معتذراً لكم ..المشاركة الأصلية كتبت بواسطة php-man
ملاحظة: لست من قام بتثبيت الموضوع حيث أن صلاحياتي في القسم لا تعني تثبيت مواضيعي .. المواضيع تثبّت برأيي حسب أهميتها لدى بقية المشرفين ..
وشكراً لك مرة أخرى لزيارتك الموضوع وتعقيبك ..
واجبي ..المشاركة الأصلية كتبت بواسطة abdalla
وعليكم السلام ورحمة الله وبركاته، أهلاً مرة أخرى ههه ..المشاركة الأصلية كتبت بواسطة tech
جرب هذا:
أتمنى أن يكون هذا قصدك، يمكنك كذلك تمرير البيانات من خلال باراميتر للفنكشن ..كود PHP:
$GLOBALS['arr']['data'];
وعليكم السلام ورحمة الله وبركاته، أهلاً بك عزيزي ولا شكر على واجب ..المشاركة الأصلية كتبت بواسطة php.ye
شكراً لمداخلتك وتعليقك وننتظر إضافاتك ..
ختاماً، اعذروني مرة أخرى لتأخري في الرد أولاً ، ثم لأنني أكاد أنام على لوحة مفاتيحي من شدة النعس والتعب، يعني لاحد يلومني إذا كنت أخبّص فووق ^^ ..
ملاحظة أخيرة للإخوة، نريد نقاش أكثر وتفاعل مع الموضوع حتى نصل إلى أكبر كم من المعلومات حول تحسين الأداء Optimization ، نظراً لضيق وقتي لم أتمكن من إتمام الكتاية ..
تحياتي، أشرف السمهوري
هذه الموضوع ايضا يتكلم عن نفس موضوعنا : الدكتور نت
استخدام علامتي التنصيص للوصول لحقل في المتسلسلة 7 مرات اسرع بدونها و سبب بسيط كلاتي :
لو انك قمت بكتابة الجمله البسيطه التاليه
سيقوم المفسر - interpreter - باعتبارها نص و طباعتها مباشرهكود PHP:
echo 'hello world ' ;
اما في حالة كتابتك للجمله التاليه
فسيقوم المفسر بلبحث عن special characters و متغيرات وعمل عملية parsing وبتالي يتطلب ذلك وقتا اضافيا.كود PHP:
echo "hello world" ;
شكراً أخي أحمد لمرورك وتعقيبك ..
بخصوص كلامك فبصراحة لا أدري أنت تطرقت لموضوعين في آن واحد ..
أحدهما استدعاء عنصر من مصفوفة بلا علامات تنصيص .. وهذا كنت قد تطرقت له تفصيلاً في الموضوع ..
والآخر هو المثال الموجود في ردك، وهذا كنت قد تطرقت له إجمالاً في الموضوع ..
على أية حال، تفسيرك فعلاً منطقي بخصوص المثال الذي قمت بإدراجه في ردك وليس فيما يتعلق بعناصر المصفوفة ..
شكراً لإضافتك، وننتظر المزيد ..
تحياتي، أشرف السمهوري
اخي اشرف , انا وضعت مثال البسيط فقط لتوضيح امور الامر نفس ينطبق على متسلسلات للوصل اليها مثلا
سيكون اسرع منكود PHP:
$ar['asc']
شكرا لتعقيبك و كل عام اونتم بخير بمناسبة شهر رمضان المبارك..كود PHP:
$ar["asc"]
التعديل الأخير تم بواسطة احمد شكر ; 31-08-2008 الساعة 01:35 AM
صحيح كذلك،
يعطيك العافية، وانت بألف خير ..