
26.08.2009, 18:51
|
|
Постоянный
Регистрация: 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 раз быстрее)
|
|
|