[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Время исполнения скрипта определяется неверно
Страницы: 1, 2
Владимир55
Скрипт производит загрузку информации из текстового файла, ее обработку и закачку в базу данных, а в браузер выводится только сообщение о количестве произведенных закачек. То есть, общение с браузером минимальное, без AJAX и Java Script .

Для измерения времени исполнения скрипта в самом начале установлен код:
    list($usec, $sec) = explode(" ", microtime()); 
$start = $sec + $usec;


А в конце скрипта такой код:
    // КОНТРОЛЬ ВРЕМЕНИ ИСПОЛНЕНИЯ 
list($usec, $sec) = explode(" ", microtime());
$finich = $sec + $usec;

$t_isp = (round (100*($finich - $start)))/100 ;
echo "<br />Время исполнения $t_isp сек. <br />";


При этом выводится результат - 7 сек. Но если контролировать по обычным часам, то 65 секунд!

Почему же время исполнения определяется неверно?
I++
<?php

$start = microtime(true);

sleep(3);

$t_isp = round(microtime(true) - $start);
echo '<br />Время исполнения '.$t_isp.' сек. <br />';

?>


В принципе код рабочий, что этот, что выше.

Каким образом вызывается скрипт? Может он вызывается 50 раз по 7 сек?
Владимир55
Скрипт вызывается однократно (это загрузка прайса).

Приятель говорит, что и он тоже замечал такой факт, причем, по его словам, при использовании разных браузеров погрешность может отличаться.

Проверил - и у меня так: Эксплорер пишет через 65 секунд, Хром через 55 секунд.

Это может навести на отгадку?
twin
Зря вы сравниваете время работы скрипта и время загрузки страницы. Это совершенно разные вещи.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Владимир55
В принципе - да, это разные вещи. Скрипт может за мгновение создать таблицу на 1000 строк, которая будет в браузере открываться три минуты, поскольку контент очень большой.

Но не в данном случае. Здесь выводимого в браузер контента 100 знаков не наберется.

А если прайс вводить покороче, то время вывода в браузер тоже сокращается, хотя контент выводится тот же.
I++
Если скрипт выполняется 7 сек, а данные грузятся 60+ сек, проблема может быть во многом, например в пропускной способности канала. Либо некая задержка в отрисовке javascript, да, что угодно.
Владимир55
Если в самом начале скрипта стоит метка времени и формируется $start, все эти задержки должны автоматически учесться.

Разве не так?
I++
Нет, будет зафиксировано только время выполнения скрипта, но не время передачи данных, и рендер в браузере.
Valick
Владимир55, РНР не отдает данные в браузер напрямую, там очень длинная цепочка и до Апача и после него

_____________
Стимулятор ~yoomoney - 41001303250491
Invis1ble
Владимир55
Запусти скрипт в консоли, чтоб исключить погрешности, связанные с браузером.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Владимир55
Идея ОЧЕНЬ хорошая!

Только я не знаю, как запустить скрипт из консоли...
medvedeva
php -f /путь/к скрипту/скрипт.php
killer8080
Владимир55
заголовки ответа сервера смотрел? Content-Length присутствует?
Владимир55
Я работу скрипта (начало, результат и конец) в тектовые файлы записал, чтобы браузер совсем остался не при делах. И Хроном запустил.
killer8080
Цитата (Владимир55 @ 26.11.2012 - 17:05)
Я работу скрипта (начало, результат и конец) в тектовые файлы записал, чтобы браузер совсем остался не при делах. И Хроном запустил.

И какой результат?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.