Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определение реальной сорости выполнения скрипта, И причины торможения 
:(
    Опции темы
wmivan
Дата 5.3.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Разрабатываю сайт на известной тормозной CMS (опущу название, а то будет сплошной холивар), пытаюсь оптимизировать скорость работы и непойму что показывает отладчик Xdebug.

Если использовать в начале страницы 

Код
$time_start = microtime(1);
 

А в конце 

Код

$time_end = microtime(1);
$time = $time_end - $time_start;
 

то в $time получим время выполнения скрипта в секундах. Так? оно равно 1,53.... секунд

Затем используя Xdebug (2.0.2) и прогу WinCacheGrind получаю для функции main (я так понимаю это выполнение всего скрипта) - cumulative time  - 154 ms. То есть  0,154 cекунд, что ровно в 10 раз меньше!??

Я не правильно что считаю или так и есть?

Вставляя этот код:

Код

$time_end = microtime(1);
$time = $time_end - $time_start;
 

в подключаемых системой файлах увидел что $time увеличивается скачками по 0,2 - 0,4 секунды в местах кода с многочиленным использованием require_once. Всего подключается не один десяток файлов. 

Может получается что Xdebug просчитывает время исполнения скрипта, не учитывая время затраченное на сам вызов функции require_once? 
И почему может тратится много времени на подключение файлов? 
PM MAIL   Вверх
awers
Дата 5.3.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Код

$start_time = microtime(); 
$start_array = explode(" ",$start_time); 
$start_time = $start_array[1] + $start_array[0]; 

$end_time = microtime(); 
$end_array = explode(" ",$end_time); 
$end_time = $end_array[1] + $end_array[0]; 
$time = $end_time - $start_time; 
printf("Время выполения %f секунд",$time); 


Я не стал переписывать, это с соседнего топика. Так же есть вполне рабочий пример тут: http://php.net/microtime
PM MAIL WWW ICQ Skype   Вверх
wmivan
Дата 6.3.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



это как получить массив значений времемени сполнения скрипта ? зачем ?
Код

$time_end = microtime(1);
$time = $time_end - $time_start;
echo $time;

просто вывожу время работы скрипта до точки вставки этого кода.

вопрос про Xdegug что он просчитывает как cumulative time  ? - время выполнения скрипта или нет?
и о времени которое тратиься на команду require_once? частое её использование может в 10 раз увеличить работу скрипта? или все зависит только от кода в подключаемых файлах?

Это сообщение отредактировал(а) wmivan - 6.3.2008, 14:16
PM MAIL   Вверх
CyClon
Дата 6.3.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 3
Всего: 4



microtime возращает формат "msec sec", а не как ты (автор) предпологашь "sec.msec".


--------------------
user posted image
PM   Вверх
Feldmarschall
Дата 6.3.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



CyClon, тебе следует почитать описание этой функции в документации,  http://php.net/microtime
PM   Вверх
BASILIO
Дата 19.3.2008, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Koté-CAH
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



Тоже заинтересовался сколько времени работает скрипт, зделал так:

Код

<?
$startwork = microtime();
...
...
...
echo microtime()-$startwork;
?>


Получаю иногда время с минусом... это как?!!?
PM   Вверх
bars80080
Дата 19.3.2008, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



потому как надо смотреть в синтаксис

у тебя же в microtime() два числа разделённые пробелом, их вначале надо разбить

непробовал сделать простое 
Код

echo microtime();

?
PM MAIL WWW   Вверх
MoLeX
Дата 19.3.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



BASILIO, попробуй вот это
Код

<?php
$time1 = time();
$time_m1 = microtime();

/***************************************

                                КОД

***************************************/

$time2 = time();
$mtime = abs ($time2 - $time1); 
$time_m2 = microtime(); 
$mtime_m = abs ($time_m2 - $time_m1); 
$mtime_m = substr($mtime_m, 2, 5); 
$mtime .= "." ."$mtime_m";    
?>


только учти что пользователю эти данные без различны, т.е. если у тебя сайт для блондинок то лучше время генерации страницы им не выводить (все равно не поймут зачем это), на стадии разработки и тестирование - да это удобно... 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
BASILIO
Дата 19.3.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Koté-CAH
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



MoLeX, 

Код скопирую, а можешь мне как блондинке обяснить чего ты понатыкал?  smile 
PM   Вверх
MoLeX
Дата 19.3.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



BASILIO читай
microtime()
abs()
substr()



Цитата(BASILIO @  19.3.2008,  10:15 Найти цитируемый пост)
 можешь мне как блондинке обяснить чего ты понатыкал

ну что понял(-а)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.