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

Разное

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Скорость выполнения php скрипта

Сообщения:  [1-5] 

 
 автор: Саня   (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();

   
 
 автор: 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>";
   
?>

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

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

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

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

   
 
 автор: MasTerN   (24.05.2006 в 13:34)
 
 

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

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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