اذهب إلى المحتوى

السؤال

نشر

لدي مجموعة من الدوال وأريد حساب الوقت المستغرق لإتمام كل دالة على حدى.

هل توجد طريقة تمكنني من قياس الوقت بدقة شديدة (قد تصل إلى جزء من الألف من الميللي ثانية) في PHP؟

Recommended Posts

  • 1
نشر

نعم يمكنك ذلك باستخدام الدالة microtime , على فرض أننا سوف نقوم بعمل حلقة تكرار تتكون من 100 حلقة كالتالي

$val=1; 
  
for($i = 0; $i <=100; $i++) 
{ 
    $val++; 
}  

ونحتاج أن نقوم بحساب الوقت المستغرق في اتمام عمل الحلقة , نقوم باستخدام الدالة microtime قبل بدء تنفيذ الحلقة للحصول على وقت الساعة كالتالي

$start_time = microtime(true); 
$val=1; 
  
for($i = 0; $i <=100; $i++) 
{ 
    $val++; 
}  

ثم نقوم بالحصول على وقت الساعة بعد تنفيذ الحلقة كالتالي

$start_time = microtime(true); 
$val=1; 
  
for($i = 0; $i <=100; $i++) 
{ 
    $val++; 
}  
  
$end_time = microtime(true); 

ثم نقوم بطرح وقت البداية من وقت النهاية كالتالي

$execution_time = ($end_time - $start_time); 

هكذا نحصل على الوقت المستغرق بدقة

  • 1
نشر

بجانب ما اقترحه المدرب محمد، يمكنك استعمال الوظيفة hrtime لتعيين وقتي قبل وبعد تنفيذ عملية ما، يعطى الفرق بالنانو ثانية (9-^10 ثانية) كالتالي: 

<?php
// تخزين الوقت الابتدائي
$start = hrtime(true);

function example()
{
    sleep(5); 
}
example();

// تخزين الوقت النهائي
$end = hrtime(true);

// حساب الفرق
$diff = $end - $start;

// تحويل الفرق من النانو ثانية الى الثانية 
$diff = $diff / 1000000000;

// طباعة الفرق 
echo "$diff seconds";

يمكن استعماله لمقارنة سرعة تنفيذ خوارزميات معينة. 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...