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

  • Автор темы Автор темы seva2
  • Дата начала Дата начала

seva2

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

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

Какие вообще есть tools для оптимизации кода. В слепую же не реально)
 
Может кому-то будет полезно
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;
	}
}
 
а почему xdebug при каждом запуске разное время показывает для скрипта?
 
а тогда как по нему профайлится то? можете популярно обьяснить )
 
microtime в начале - microtime в конце. разница - и есть время выполнения. чего заморачиваться то?
Есть отличная ссылка
http://ru2.php.net/manual/ru/function.microtime.php

-~{}~ 07.03.07 00:19:

Кстати, вобщем можно соорудить компонент Timer, который будет засекать время и записывать все точки под идентификаторами.
 
Скачиваем библиотеку 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 и натравливаем на лог файл, получаемый после запуска, и радуемся жизни...
 
мешает то - что при разных запусказх разное время и может отличатся на порядки

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

-~{}~ 08.03.07 15:14:

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