Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скорость выполнения php скрипта
 
 автор: MasTerN   (24.05.2006 в 13:34)
 
 

Как узнать на ЛокалХосте(или на Сервере) за какое время будет выполняться мой скрипт, с разными подключениями(у меня одно подключение, но интересно с какой скоростью будет работать допустим на диалапе).

   
 
 автор: Киналь_гость   (24.05.2006 в 13:50)
 
   для: MasTerN   (24.05.2006 в 13:34)
 

РНР-скрипт выполняется на сервере, поэтому его скорость никак не зависит от канала пользователя. От скорости соединения зависит только время передачи результатов его работы пользователю. Скорость же самого скрипта зависит от сервера.

   
 
 автор: MasTerN   (24.05.2006 в 15:32)
 
   для: Киналь_гость   (24.05.2006 в 13:50)
 

А... Понятно...
А хостеры в чём указывают свою скорость выполнения скриптов?

   
 
 автор: Axxil   (24.05.2006 в 15:44)   письмо автору
 
   для: MasTerN   (24.05.2006 в 15:32)
 

Обычно в скрипты встраивают специальное програмное средство которое замеряет время вначале скрипта и в его конце. Разница и будет временем выполнения.
Это средство обычно называют профайлером.
Я для себя написал такой вариант: (Он позволяет накапливать результаты измерений и вываливать их потом в одну кучу)
Сам профайлер

<?
class Timer 
{
    var 
$struc;
    function 
start($name='default')
    {
        list(
$msec$sec) = explode(' 'microtime());
        
$this->struc['start'][$name]=$sec $msec;
    }

    function 
stop($name,$startname='')
    {
        if(empty(
$startname)) $sname=$name;
        else 
$sname=$startname;
        
$start $this->struc['start'][$sname];
        list(
$msec$sec) = explode(' 'microtime());
        
$this->struc['stop'][$name] = $sec $msec $start;
    }
    
    function 
out(){
      return 
$this->struc['stop'];
    } 
}
?>

Пример использования

    <?
    $timer 
= new Timer
    
$timer->start('breakpoint 1');
    
// код ..............
    
$timer->stop(breakpoint 1);
    ------------------------------------
    
$timer->start('breakpoint 2');
    
// код ..............
    
$timer->stop('breakpoint 2');
    
// код -------------
   // выводим результаты работы профайлера в секундах
    
echo "<table>";
    foreach(
$timer->out() as $key=>$value){
      echo 
"<tr><td>".$key."</td><td>".$value."</td></tr>";
    } 
    echo 
"</table>";
   
?>

   
 
 автор: Саня   (24.05.2006 в 20:46)   письмо автору
 
   для: Axxil   (24.05.2006 в 15:44)
 

Ох, ну зачем здесь ООП? Я пользуюсь такой функцией:
<?php
function gettime() {
  
$t explode(" "microtime());
  
$t2 $t[1].substr($t[0], 1);
  if ( !empty(
$GLOBALS['start']) ) {
    
$r bcsub($t2$GLOBALS['start'], 6);
    unset(
$GLOBALS['start']);
    return 
$r;
  } else {
    
$GLOBALS['start'] = $t2;
  }
}

gettime();
/* ...код... */
print gettime();

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования