Итак, есть текстовый файл (для тестирования взят порядка 10 Кб, зажатый в gz-архив весом около 2 Кб); есть массив слов из БД (для тестирования взят массив около 500); требуется выделить в тексте соответствия слов и вывести на экран.
Хронометрирую поэтапно:
1. Селект из БД по условию и в цикле собираю массив слов $words - несколько сотен элементов массива.
Время выполнения в пределах 0.005 сек.
2.Читаю текст из файла:
@ob_start();Время выполнения меньше 0.001 сек.
readgzfile($arc_file);
$txt = @ob_get_contents();
@ob_end_clean();
3. В цикле делаю разметку:
$pattern = "\"|\s|\-|\_|\.|,|!|"";Время выполнения примерно 0.05 сек.
$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);
}
Теперь все три блока в одном коде. И время генерации страницы 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 написал(а):
Тормозит третий блок.
Но если вместо второго блока тупо вбить
И еще наблюдение: тормоза под денвером; тот же скрипт на юникс-хостинге выполняется без тормозов...
Вероятно у денвера библиотека распаковки gz как-нибудь некорректно с памятью работает.
Еще наблюдение: мерялка расхода памяти показывает затраты памяти в сотню Кб, а в диспетчере задач память апача прирастает мегабайт на 50...
На хостинге скрутил память апача до 6 Мб (меньше нельзя, чтобы сайты не встали) - без проблем скрипт отрабатывает...
Похоже, это все же проблема или денвера, или винды...
Но если вместо второго блока тупо вбить
$txt = 'Тут текст на 10 000 знаков';всё выполняется в кратчайшие сроки.
И еще наблюдение: тормоза под денвером; тот же скрипт на юникс-хостинге выполняется без тормозов...
Вероятно у денвера библиотека распаковки gz как-нибудь некорректно с памятью работает.
Еще наблюдение: мерялка расхода памяти показывает затраты памяти в сотню Кб, а в диспетчере задач память апача прирастает мегабайт на 50...
На хостинге скрутил память апача до 6 Мб (меньше нельзя, чтобы сайты не встали) - без проблем скрипт отрабатывает...
Похоже, это все же проблема или денвера, или винды...
Спустя 7 часов, 53 минуты, 12 секунд (30.03.2010 - 09:46) Oyeme написал(а):
Денвер,wamp итд
Вообще надо сносить.
Скачать apache ,php и mysql(или другое) настроить их и не париться больше.
Настраивать их минут 5
Эти сборки сырые..)То одна библиотека идёт то другая не идёт
Вообще надо сносить.
Скачать apache ,php и mysql(или другое) настроить их и не париться больше.
Настраивать их минут 5
Эти сборки сырые..)То одна библиотека идёт то другая не идёт
_____________
Бесплатному сыру в дырки не заглядывают...