Как изменрять время выполнения кода?

seva2

Партнер PHPClub.ru
Как изменрять время выполнения кода?

Есть пару альтернатив по организации работы сайта, некоторые участки кода можно по разному организовать... Уточните как время выполнения и нагрузку выполнения некоторых операций вычислять?

Какие вообще есть tools для оптимизации кода. В слепую же не реально)
 

andymc

Новичок
Может кому-то будет полезно
PHP:
class timer {
  var $starttime, $totaltime;
	var $timer = array();
  function timer(){
		$this->starttime = microtime();
  }
  function et($pos = ''){
  	$pos == '' ? $pos = time() : true;
		$pageendtime = microtime();
  	$starttime2 = explode(" ", $this->starttime);
  	$endtime = explode(" ", $pageendtime);
  	$this->totaltime = $endtime[0] - $starttime2[0] + $endtime[1] - $starttime2[1];
  	$this->totaltime = round($this->totaltime, 3);
  	$this->timer[$pos] = $this->totaltime;
  }

	function show($check, $echo = true){
		$this->et('end');	
		$s  = "";
		if ($check){
			$s .= '<div style="position:absolute; top: 10px; left: 10px; background-color:#FFFFFF; color:#000000; padding: 5px" onClick="this.style.display=\'none\'">
			<pre style="font-size:11px">
			' . print_r($this->timer, true) . '
			</pre>
			</div>';
		}
		if ($echo){
			echo $s;
		}
		return $s;
	}
}
 

EugeneVC

Новичок
а почему xdebug при каждом запуске разное время показывает для скрипта?
 

EugeneVC

Новичок
а тогда как по нему профайлится то? можете популярно обьяснить )
 

exxbrain

Новичок
microtime в начале - microtime в конце. разница - и есть время выполнения. чего заморачиваться то?
Есть отличная ссылка
http://ru2.php.net/manual/ru/function.microtime.php

-~{}~ 07.03.07 00:19:

Кстати, вобщем можно соорудить компонент Timer, который будет засекать время и записывать все точки под идентификаторами.
 

jonjonson

Охренеть
Скачиваем библиотеку xdebug нужной версии с http://www.xdebug.org/
Прописываем в php.ini, например для четвёртой версии:

zend_extension_ts="c:/web/php-4.4.4/extensions/php_xdebug-2.0.0rc3-4.4.1.dll"
xdebug.show_local_vars=1
; Trsert
xdebug.auto_trace=On
xdebug.trace_output_dir="c:/web/home/traces"
; Profile
xdebug.profiler_enable=On
xdebug.profiler_output_dir="c:/web/home/traces"

Скачиваем с http://sourceforge.net/projects/wincachegrind/
WinCacheGrind и натравливаем на лог файл, получаемый после запуска, и радуемся жизни...
 

EugeneVC

Новичок
мешает то - что при разных запусказх разное время и может отличатся на порядки

вот его родственник valgrind такой болезнью не страдает - там достаточно все равномерно
 

exxbrain

Новичок
Автор оригинала: tf
exxbrain, угомонись
Конечно проще установить библиотеку на пол-мега (утрирую) :) Мы же серьезные люди - используем серьезные компоненты для подсчета времени выполнения скрипта (см. название топика)

-~{}~ 08.03.07 15:14:

Автор оригинала: EugeneVC
а почему xdebug при каждом запуске разное время показывает для скрипта?
Не на сервере ли какого-либо хостера вы проверяете время выполнения?
 

andymc

Новичок
Развели вы тут беседу конечно...
Скорость это хорошо, но главное - делать хорошие скрипты
 

exxbrain

Новичок
Автор оригинала: andymc
Скорость это хорошо, но главное - делать хорошие скрипты
В чем это измерить можно? Скорость - это один из некоторого количества параметров.
 

exxbrain

Новичок
tf
:) Посуществу ответ уже был. Тема не закрыта. Чего ты прикопался?
P.S. Выясняется вопрос - какие критерии оценки, кроме скорости выполнения, идут.
 
Сверху