|
автор: 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)
| | А... Понятно...
А хостеры в чём указывают свою скорость выполнения скриптов? | |
|
|
|
|
|
|
|
для: 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>";
?>
|
| |
|
|
|
|
|
|
|
для: 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();
|
| |
|
|
|