[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Виснет от многократного date
RollerBlade
Писал скрипт, в какой-то момент он начал зависать. Без причины.
Долго копался, понял, что проблема в слишком частом вызове функции date().
Основной свой скрипт приводить в пример не буду, но вот это:

PHP
for ($i 0$i<168$i++)
{
    
$tmp date ("d.m.y");
    echo 
$tmp;
}


Уже не работает...
(достаточно 168 исправить на 167, чтобы запустилось)

Пхп 5.3.
Кто-то сталкивался? Что делать?



Спустя 6 минут, 34 секунды (12.08.2009 - 18:21) waldicom написал(а):
PHP
$tmp date ("d.m.y");
for (
$i 0$i<168$i++)
{
    echo 
$tmp;
}

Спустя 3 минуты, 39 секунд (12.08.2009 - 18:24) kirik написал(а):
PHP
echo str_repeat(date("d.m.y"), 168);

Спустя 21 минута, 41 секунда (12.08.2009 - 18:46) FatCat написал(а):
PHP
list($usec$sec) = explode(" "microtime());
$timer_start = ((float)$usec + (float)$sec);
for (
$i 0$i<1000$i++)
{
    
$tmp date ("d.m.y");
}
list(
$usec$sec) = explode(" "microtime());
$timer_end = ((float)$usec + (float)$sec);
echo 
"Затрачено ".($timer_end-$timer_start)." секунд.<br>";

list(
$usec$sec) = explode(" "microtime());
$timer_start = ((float)$usec + (float)$sec);
for (
$i 0$i<10000$i++)
{
    
$tmp date ("d.m.y");
}
list(
$usec$sec) = explode(" "microtime());
$timer_end = ((float)$usec + (float)$sec);
echo 
"Затрачено ".($timer_end-$timer_start)." секунд.<br>";

list(
$usec$sec) = explode(" "microtime());
$timer_start = ((float)$usec + (float)$sec);
for (
$i 0$i<100000$i++)
{
    
$tmp date ("d.m.y");
}
list(
$usec$sec) = explode(" "microtime());
$timer_end = ((float)$usec + (float)$sec);
echo 
"Затрачено ".($timer_end-$timer_start)." секунд.<br>";


Под денвером на локалке:
Цитата
Затрачено 0.25340795517 секунд.
Затрачено 2.46367406845 секунд.
Затрачено 24.638354063 секунд.


http://phpforum.ru/****.php
Цитата
Затрачено 0.029388904571533 секунд.
Затрачено 0.28791904449463 секунд.
Затрачено 2.8661320209503 секунд.

Спустя 14 минут, 12 секунд (12.08.2009 - 19:00) RollerBlade написал(а):
waldicom, нет, надо именно 168 раз высчитывать дату, а не выводить.

kirik, твой вариант работает, НО: эта функция ОДИН раз вычисляет занчение функции и результат копирует. А мне надо сного раз именно вычислить дату.

FatCat, твой скрипт у меня тоже виснет. На локалке, под апачем 2.0.63.

Спустя 17 минут, 34 секунды (12.08.2009 - 19:18) kirik написал(а):
Цитата (RollerBlade @ 12.08.2009 - 11:00)
А мне надо сного раз именно вычислить дату.

Объясни, каков смысл?

Цитата (RollerBlade @ 12.08.2009 - 11:00)
FatCat, твой скрипт у меня тоже виснет. На локалке, под апачем 2.0.63.

Ты с мобилки что-ли запускаешь?

Спустя 3 минуты, 35 секунд (12.08.2009 - 19:21) RollerBlade написал(а):
Много раз вычислить дату - потому что там не просто вычисление текущего числа+месяца+года, а функция работает в паре с mktime(), которая в каждый вызов дает date()-у отдельное значение.

В смысле с мобилки?
Обычный настольный комп wink.gif

Спустя 13 минут, 59 секунд (12.08.2009 - 19:35) kirik написал(а):
Цитата (RollerBlade @ 12.08.2009 - 11:21)
Много раз вычислить дату - потому что там не просто вычисление текущего числа+месяца+года, а функция работает в паре с mktime(), которая в каждый вызов дает date()-у отдельное значение.

Гм.. не может этот скрипт виснуть просто так.. А что за ОС/сервер?

Спустя 4 минуты, 20 секунд (12.08.2009 - 19:40) twin написал(а):
Мож тупо времени не хватает... Кто знает что там за код дальше.
Попробуй set_time_limit(0); в начало скрипта

Спустя 31 минута, 12 секунд (12.08.2009 - 20:11) RollerBlade написал(а):
kirik, вот и я подумал, что странно, что виснет... WinXP sp3 / apache 2.0.63

twin, кода дальше никакого нет. То есть, есть, но это не имееть значения.
Не работает даже тот голый кусок кода, который в сабже написан.

Спустя 6 минут, 53 секунды (12.08.2009 - 20:18) kirik написал(а):
Цитата (RollerBlade @ 12.08.2009 - 12:11)
WinXP sp3 / apache 2.0.63

Прямо чистый апач с пхп? Или денвер какой-нибудь?

Спустя 19 минут, 12 секунд (12.08.2009 - 20:37) RollerBlade написал(а):
чистый-чистый.

Спустя 7 минут, 29 секунд (12.08.2009 - 20:44) kirik написал(а):
Попробуй удалить все к чертям и поставить Denwer или XAMPP. Полюбому их лучше затачивают для работы в ненативной ОС..

ЗЫ.
про бэкапы не забудь (файлы/БД)

Спустя 39 минут, 9 секунд (12.08.2009 - 21:24) RollerBlade написал(а):
Да, денвер спас. Спасибо.

Спустя 2 часа, 38 секунд (12.08.2009 - 23:24) S{oRpiO написал(а):
как говортся через жопу настроенный сервер
Быстрый ответ:

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