прег_реплейс - жуткие тормоза

nagash

Guest
прег_реплейс - жуткие тормоза

имеется

$patterns = array ("%\%name\%%",);
$replacements = array ($name);
echo preg_replace($patterns, $replacements, $anouncego);

данная конструкция выполняется 20 раз

$anouncego = фаил в 1_299 байт

итого
если [ЦВЕТОМ=red]без[/ЦВЕТОМ] этого прег реплейса или если поставить
$anouncego = "";
то время выполнения скрипта 0.02 секунды

если [ЦВЕТОМ=red]с[/ЦВЕТОМ] этим прег реплейсом и не менять $anouncego
то время выполнение скрипта 2.5-3.0 секунды!!!

неужели так сильно может тормозить из-за прег реплейса?
а существуют ли альтернативные более быстрые функции?

P.S. стринг реплейс возвращает такие же скорости
 

Crazy

Developer
Признаться, не вижу смысла в regexp'ах в данном случае.
 

nagash

Guest
там что, 1000 элементов массива?
нет я максимально уменьшил....
просто чтобы было удобнее написать пример...
там 20 элементов но тестировал я всё таки на одном элементе перед тем как сюда написать
Признаться, не вижу смысла в regexp'ах в данном случае.
а какие есть полезные предложения? =)

Версия Php? Apache ?
4.3.0
1.3.27
 

nagash

Guest
да спасибо...
появился прирост но всё таки не стль значительный...
неужели так долго обработать маленький файлик 20 раз (естественно я его не считываю 20 раз)
просто выполнение всего остального занимает всего лишь 0.2 секунды а работа с реплейсами так долго...
или может на сервере что-то не так настроено?
 

Demiurg

Guest
а зачем тебе 20 раз обрабатывать ?
обрабатывай 1 раз.
 
Сверху