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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> set_time_limit, прикольный, он все таки 
:(
    Опции темы
Cheba
Дата 24.6.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Код
echo date("H:m:s"), "\n";
set_time_limit(30);
for ($i = 0; $i < 100; $i++)
{
    sleep(10);
    echo date("H:m:s"),"\n";
}
echo "Done!";


Простой пример. Прочитав доку, всем кажется что этот скрипт должен три раза вывести время и помереть. Но вы попробуйте. Вот у меня лично эта штука вывела пять раз время. Дальше я не ждал и так ясно, что это сильно много. Так что же задает set_eime_limit?
Есть мнение, что это процессорное время. Есть еще идеи?

И если это действительно процессорное время, то как все же ограничить выполнение скрипта по реальному времени? Ведь можно сделать скрипт, который будет засыпать на пять лет и серверу при средненькой посещаемости будет очень нехорошо, когда у него в памяти будут накапливаться скриптики...
PM MAIL ICQ   Вверх
Mal Hack
Дата 24.6.2005, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



А он у тебя до цикла реалдьно дошел?

Цитата(Cheba @ 24.6.2005, 18:52)
echo date("H:m:s"), "\n";

запятая - синтаксическая ошибка.


Cheba в свое время я заметил что set_time_limit работает очень глючно, как и sleep, особенно на винде.
Я думаю что тут дело в ыдууз все-таки.

PM ICQ   Вверх
Irokez
Дата 24.6.2005, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



Цитата(Mal @ 24.6.2005, 19:48)
запятая - синтаксическая ошибка.

нет, это разделение инструкций
Добавлено @ 20:13
Цитата(Cheba @ 24.6.2005, 17:52)
Прочитав доку, всем кажется что этот скрипт должен три раза вывести время и помереть.

у меня так и сработало
PM   Вверх
Mal Hack
Дата 24.6.2005, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(Irokez @ 24.6.2005, 21:11)
ет, это разделение инструкций

Это как так?
PM ICQ   Вверх
Irokez
Дата 24.6.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



Цитата(Mal @ 24.6.2005, 20:27)
Это как так?

т.к. echo - это не функция, а яхыковая конструкция, то необязательно передавать параметры в скобках, можно и без них.
PM   Вверх
sergejzr
Дата 24.6.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Цитата(Cheba @ 24.6.2005, 16:52)
Ведь можно сделать скрипт, который будет засыпать на пять лет и серверу при средненькой посещаемости будет очень нехорошо, когда у него в памяти будут накапливаться скриптики...

Дольше, чем установленый на сервере timeout, скрипт всё равно жить не будет smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Cheba
Дата 24.6.2005, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Цитата(Mal @ 24.6.2005, 19:48)
А он у тебя до цикла реалдьно дошел?

Дошел. Сам попробуй. smile

Цитата(Mal @ 24.6.2005, 19:48)
запятая - синтаксическая ошибка.

Нет. Irokez прав. Это языковая конструкция. С этим все в порядке.

Цитата(Mal @ 24.6.2005, 19:48)
Я думаю что тут дело в ыдууз все-таки.

Тестилось на FreeBSD. smile

Цитата(Irokez @ 24.6.2005, 20:11)
у меня так и сработало

Это потому, что обычно скрипты не спят, а активно выполняются и расходуют свое процессорное время. Даже для обычного скрипта получается немножко больше, чем заданый интервал, все-таки php не на все 100 грузит проц.

Цитата(sergej @ 24.6.2005, 20:48)
Дольше, чем установленый на сервере timeout, скрипт всё равно жить не будет

Проверь. smile

Ну, вы люди, даете. Неужели никто не попробовал выполнить приведенный скрипт? Я тоже долго спорил, а потом решил обломать чела на практике. Сваял скриптик и... обломался сам. Не будьте ленивыми. Уже бы десять раз его перекопипастали и выполнели. smile

PM MAIL ICQ   Вверх
Ni@m
Дата 25.6.2005, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 11.3.2004
Где: почти Киев

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



Чеба прав на все 100. Это я был инициатором теста! И как ни странно результаты противоречащие документации =).
sleep - действительно обычные человеческие секунды, а вот set_time_limit - процессорные.
Дополнительно протестил под линухой дома - результаты те же.
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
immax
Дата 25.6.2005, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



XP SP2. PHP 4.3.4. Результат таков:

06:07:05 06:07:15 06:07:25
Fatal error: Maximum execution time of 30 seconds exceeded in g:\project\www\test.php on line 7

Ну или:

06:07:09 06:07:19
Fatal error: Maximum execution time of 20 seconds exceeded in g:\project\www\test.php on line 7

Или:

06:07:34
Fatal error: Maximum execution time of 10 seconds exceeded in g:\project\www\test.php on line 7


Так что, гхм, всё правильно... Количество сообщений о времени успевает вывестись столько раз, какое математическое соотношение значения таймлимита со слипом...

--------------------
Would yo kindly...?
PM MAIL   Вверх
IZ@TOP
Дата 27.6.2005, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Странно то что у меня под виндой тоже только трижды вывел дату
Цитата
01:06:58 01:06:08 01:06:18
Fatal error: Maximum execution time of 30 seconds exceeded in d:\home\v1.library.ru\timelimit.php on line 8



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Cheba
Дата 27.6.2005, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Видать, это *никсовая проблема... Странно, но ведь большинство серверов работабт именно на *никсах... Люди с *никсами, потестите, плз. И давайте напишем коллективную жалобу в php, чтобы не обманывали народ.
PM MAIL 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.0808 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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