Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения, их скорость 
:(
    Опции темы
Opik
Дата 25.1.2005, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Я например привык использовать (.*), даже в тех случаях, где могут быть только цифры или только буквы.
Занижает ли это "жадное" выражение скорость по сравнению, например, с ([0-9]+) ?
Буду благодарен и за интересную инфу по этому поводу smile
PM MAIL Skype   Вверх
rMaveric
Дата 25.1.2005, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: 3
Всего: 6



озреваю, что выборка всех символов будет работать более быстро и использовать меньше ресов... сравнивать то несчем... А там помимо всего еще и проверка допустимого диапазона.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 25.1.2005, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Opr
очень много зависит от тогокакой в целом рэг и какой текст и что надо получить.
Так уж конкретно сказать нельзя...
PM ICQ   Вверх
Opik
Дата 25.1.2005, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Mal Hack
preg_match_all("(.*), (9 раз)");
текст, немного HTML и далее под шаблон.
PM MAIL Skype   Вверх
Mal Hack
Дата 25.1.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Opr @ 25.1.2005, 17:47)
текст, немного HTML и далее под шаблон.

Я в глобальном имел ввиду smile
PM ICQ   Вверх
Irokez
Дата 25.1.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



Код

<?php
$testtime1=0;
$testtime2=0;
$m1=array();
$m2=array();
set_time_limit(0);
for($test=1; $test<=10; $test++)
{
   $bigstr='';
   for($i=0; $i<=1000; $i++)
   {
       for($j=0; $j<=100; $j++)
           $bigstr.=chr(rand(48, 122));
       $bigstr.="\n";
   }
   $b=chr(rand(48, 122));
   $time1=microtime();
   preg_match_all("/$b(.*)$b/", $bigstr, $m1);
   $time2=microtime();
   preg_match_all("/$b([0-9]+)$b/", $bigstr, $m2);
   $time3=microtime();
   echo ' 1:'.$testtime1+=$time2-$time1;
   echo ' 2:'.$testtime2+=$time3-$time2;
   echo '<br>';
   flush();
}
?>

Добавлено @ 20:10
1:0.007076 2:0.001406
1:0.013041 2:0.0025580000000001
1:0.020454 2:0.0037200000000001
1:0.027139 2:0.0050360000000001
1:0.035905 2:0.0061780000000001
1:0.0441 2:0.0091880000000001
1:0.050768 2:0.010704
1:0.056664 2:0.011666
1:0.062725 2:0.013148
1:0.069188 2:0.014619

PM   Вверх
Mal Hack
Дата 25.1.2005, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Irokez
У тебя получение времени неправильное...
PM ICQ   Вверх
Irokez
Дата 25.1.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



возможно, между делом писал, а где именно ошибка?
кстати я менял местами тестируемые строки, результат был тот же - Opr прав - жадное выражение (.*) занимает больше времени
PM   Вверх
Mal Hack
Дата 25.1.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Irokez @ 25.1.2005, 20:41)
а где именно ошибка?

У тебя микротайм вернет: илисекунды пробел tme();... Вот и думай что ты потом высчитаваешь...
Код

function getmicrotime()
 {
  $mt = explode( " ", microtime() );
  return ( (float)$mt[0] + (float)$mt[1] );
 }



PM ICQ   Вверх
Irokez
Дата 25.1.2005, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



а сорри, ну тогда заместо microtime() , используем getmicrotime(), результат такой же
ЗЫ я просто тогда был уверен в результате, потому что сначала использовал просто time()
PM   Вверх
Wowa
Дата 25.1.2005, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(Opr @ 25.1.2005, 13:16)
Занижает ли это "жадное" выражение скорость по сравнению, например, с ([0-9]+) ?

Скорее не занижает, а повышает.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.