- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Пишу шаблонизатор для локальной системы учета и менеджмента. Столкнулся с вопросом оптимизации замены поиска и замены тегов.
Что будет быстрее выполнятся:
while (preg_match(...,$key,$matches)) {
...$key = preg_replace($matches[0],...,$key);
}
или же
preg_match_all(...,$key,$matches);
foreach ($matches[0] as $value) {
...$key = preg_replace($value,...,$key)
}
Склоняюсь ко второму варианту. Но первый выглядит лучше, его я изначально и использовал. Пробовал провести эксперимент с microtime до и после, но в случае с foreach выдает отрицательно значение (и это при 50000 повторов).
man preg_replace
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
Это я к чему...
Заполните два массива
1 -Что менять
2- На что менять
А затем уже после цикла все одним махом.
Вы о чем? Я спрашиваю о производительности этих двух вариаций? Что будет быстрее, одним махом получил всем совпадения по регулярному выражению в массив и уже потом через foreach выполнять модификации ИЛИ на ходу искать-модифицировать значение по порядку через while цикл.
--------
Понял о чем. По вашей схеме +1 задача (подготовка массива замены).
Производительность что первая что вторая почти будут одинаковы
но второй вариант смотрится лучше имхо
siv1987, это не совсем string, а файловый ресурс полученный с помощью file_get_contents()...
Может есть способ провести реальное тестирование быстродействия каждого из вариантов?
по производительности на 10 миллисекунд будет работать preg_match_all
за счет скомпилированного кода...
Chukcha, быстрее, верно?
ну глядите...
цикл интерпретатора медленнее цикла скомпилированного кода.
Так понятней?
Chukcha, быстрее, верно?
Если у вас 10 миллионов запросов, тогда можете думать о быстрее или не быстрее.
Всё остальное не играет роли.
0,0005
или
0,0006
Chukcha, да. 10 миллисекунд много. У меня сейчас скрипт выполняется за 48 милисекунд... И циклов там штук 20 минимум.
---------- Добавлено 05.10.2012 в 23:45 ----------
LEOnidUKG, играет. Вкупе это может дать молниеносную производительность.
Самым тонким местом есть "толстый" канал связи и сервер БД