عوده للمواضيع <<

شرح php benchmarking لقياس أداء وسرعة برمجياتك




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

فى هذه المقاله سنلقى الضوء على php benchmarking وسنتعرف على كافة ما يتعلق ب benchmarking بالتفصيل.


ماهو تعريف benchmarking ؟
فى لغات البرمجة ,benchmarking يقصد به اى مفهوم من المفاهيم الاتيه:

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


اى من المفاهيم السابقه تصف المقصود ب benchmark


ماهى اهمية benchmarking ؟
الbenchmarking يعتبر من الأمور المهمه فى حال أردت أن تقوم بالاتى:
1-معرفة سرعة كودك البرمجى والوقت الذى استغرقه لتنفيذ الكود
2-معرفة اماكن الضعف التى تعانى من بطء فى تنفيذ الكود
3-معرفة الاقتراحات الأفضل لتحسين أداء وسرعة كودك

ومن النقاط السابقه جاءت أهمية benchmarking


كيف يمكن تطبيق benchmarking على برمجياتك ؟
اختبار الأداء والسرعة يمكن تطبيقه على برمجياتك بواسطة طرق مختلفه ومتعدده ,بعضها به شىء من الصعوبه فى تنفيذه ,وبعضها يتطلب وقت مطول,وأهم الطرق التى يمكن استخدامها هما:

1-استخدام xdebug
2-استخدام دالة ()microtime


لكن ما الأفضل, xdebug ام microtime ؟
الxdebug :هواضافة برمجية تقوم بعرض تفصيلى ودقيق لكل عملية برمجية تقوم بها,وهذه الاضافه موجوده افتراضيا فى xampp ,ويمكن تفعيلها من ملف php.ini ,واستخدام أحد البرامج لعرض عملية benchmarking التى تمت على اى ملف من ملفات برمجياتك بواسطة netbeans او cahcegrind

اما
()microtime :هى دالة فى php ,ويمكن استخدامها فى الأماكن التى تريد اختبار اداء وسرعة تنفيذ الكود


فى هذا الدرس ,سنتعلم استخدام الطريقه الاسهل والأقل تفصيلا وهى بواسطة دالة ()microtime ,فهى لها طريقه مخصصه لتستخدمها فى benchmarking


كيف نستخدم دالة ()microtime لعمل benchmarking ؟
اولا:لابد ان تعلم ان وظيفة هذه الداله انها تعود بالوقت الزمنى الحالى بصيغة unix timestamp بالمايكروثانيه,اى انها باختصار هى دالة وقت .

لاستخدام هذه الدالة فى benchmarking ,الفكرة بكل بساطة اننا سنضع هذه الدالة قبل الكود الذى تريد قياس الوقت اللازم لتنفيذه ,والتى سيعطينى الوقت الحالى قبل بداية تنفيذ الكود,ثم بعد ذلك ستضع فى نهاية الكود البرمجى الخاص بك هذه الداله مطروحا منها دالة ()microtime التى وضعناها قبل الكود,بحيث سيكون الناتج هو الوقت الذى استغرق لتنفيذ الكود

شاهد الصوره لتفهم المقصود:




أمثله عملية ليعض الأكواد:
function Test11_1() {
global $answer;

/* The Test */
ob_start();
$t = microtime(true);
while($i < 1000) {

echo '';

++$i;
}
$tmp = microtime(true) - $t;
ob_end_clean();

return $tmp;
}



كود اخر

function Test8_5() {
global $x;
#$someClass =& new SomeClass2();

/* The Test */
$t = microtime(true);
while($i < 1000) {
$tmp[] = 'aa $ aaaa $ aaaa $ a';
++$i;
}

return (microtime(true) - $t);
}




وبهيك نكون قد أخذنا نبذه بسيطه عن php benchmarking


فى رعاية الله

دكتور:محمد أمين