[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Странный клинч при последовательном использовании
FatCat
Столкнулся со странным лавинообразным ростом потребления ресурсов.

Итак, есть текстовый файл (для тестирования взят порядка 10 Кб, зажатый в gz-архив весом около 2 Кб); есть массив слов из БД (для тестирования взят массив около 500); требуется выделить в тексте соответствия слов и вывести на экран.

Хронометрирую поэтапно:

1. Селект из БД по условию и в цикле собираю массив слов $words - несколько сотен элементов массива.
Время выполнения в пределах 0.005 сек.

2.Читаю текст из файла:
			@ob_start();
readgzfile($arc_file);
$txt = @ob_get_contents();
@ob_end_clean();
Время выполнения меньше 0.001 сек.


3. В цикле делаю разметку:
		$pattern = "\"|\s|\-|\_|\.|,|!|"";
$len = count($words);
for(
$i=0;$i<$len;$i++)
{

$txt = preg_replace("/(".$pattern.")(".$words[$i].")(".$pattern.")/is", "\\1<span class='searchlite'>\\2</span>\\3", $txt);
}
Время выполнения примерно 0.05 сек.




Теперь все три блока в одном коде. И время генерации страницы 14 секунд. Четырнадцать!!!



Спустя 3 минуты, 48 секунд (29.03.2010 - 12:06) FatCat написал(а):
Такое впечатление, что он каждый раз раззиповывает внутри цикла...

Спустя 21 минута, 40 секунд (29.03.2010 - 12:28) Oyeme написал(а):
Попробуй после каждого этапа ,поставить время выполнения скрипта (когда все 3 блока вместе)и после каждого этапа usleep(); на пару миллисекунд.

Спустя 13 часов, 24 минуты, 50 секунд (30.03.2010 - 01:53) FatCat написал(а):
Тормозит третий блок.
Но если вместо второго блока тупо вбить
$txt = 'Тут текст на 10 000 знаков';
всё выполняется в кратчайшие сроки.

И еще наблюдение: тормоза под денвером; тот же скрипт на юникс-хостинге выполняется без тормозов...

Вероятно у денвера библиотека распаковки gz как-нибудь некорректно с памятью работает.
Еще наблюдение: мерялка расхода памяти показывает затраты памяти в сотню Кб, а в диспетчере задач память апача прирастает мегабайт на 50...
На хостинге скрутил память апача до 6 Мб (меньше нельзя, чтобы сайты не встали) - без проблем скрипт отрабатывает...

Похоже, это все же проблема или денвера, или винды...

Спустя 7 часов, 53 минуты, 12 секунд (30.03.2010 - 09:46) Oyeme написал(а):
Денвер,wamp итд wink.gif
Вообще надо сносить.

Скачать apache ,php и mysql(или другое) настроить их и не париться больше.
Настраивать их минут 5 wink.gif

Эти сборки сырые..)То одна библиотека идёт то другая не идёт dry.gif


_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

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