Показать сообщение отдельно

  #9  
Старый 26.08.2009, 18:51
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
С нами: 9541766

Репутация: 2407


По умолчанию

Ради интереса сделал бенчмарк:
PHP код:
<?php  
set_time_limit
(0);

//моя функция
function countspec($stroka)

  return 
preg_match_all('/[^a-zA-Zа-яА-ЯёЁ0-9 ]/',$stroka,$m);
}

//функция Pashkela
function countspec2($stroka) {  
   
$count=0;   
   for(
$i=0;$i<strlen($stroka);$i++) {   
       if(!
preg_match("#[\sa-zа-я0-9]#i",$stroka{$i})) $count++; 
   }  

   return 
$count;



//для бенчмарка
function microtime_float()
{
    list(
$usec$sec) = explode(" "microtime());
    return ((float)
$usec + (float)$sec);
}


$m=microtime_float();

for(
$i=0;$i<500000;$i++)
{
  
countspec('вася пупкин !@#45 траляля');
}


$tm=microtime_float()-$m;

print 
'd_x: '.$tm.' sec<br>';



$m=microtime_float();

for(
$i=0;$i<500000;$i++)
{
  
countspec2('вася пупкин !@#45 траляля');
}


$tm=microtime_float()-$m;

print 
'Pashkela: '.$tm.' sec<br>';
?>
Результат:
Код:
d_x: 4.36448502541 sec
Pashkela: 33.2198770046 sec
Моя функция в 7.5 раз быстрее)
 
Ответить с цитированием