parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

сравнил и не убедился... TRIM на порядок хуже (код внутри)

Dep 07.03.2004 17:16

вот код:
$text[     ghbvth ntrcnf      ]

$ss[$status:rusage]
$s1(^eval($ss.utime*1000))
$m1($ss.maxrss)

^for[page](1;10000){
	$a[^trim[$text]]
}

$ss[$status:rusage]
$s2(^eval($ss.utime*1000))
$m2($ss.maxrss)

^for[page](1;10000){
	$text1[^text.match[^^\s+][]{}]
	$a[^text1.match[\s+^$][]{}]
}

$ss[$status:rusage]
$s3(^eval($ss.utime*1000))
$m3($ss.maxrss)

^for[page](1;10000){
	$a[^text.match[^^\s*(.*?)\s*^$][]{$match.1}]
}

$ss[$status:rusage]
$s4(^eval($ss.utime*1000))
$m4($ss.maxrss)

<table cellpadding='5' cellspacing='0' border='1'>
<tr>
	<td>1.</td>
	<td>^eval($s2-$s1)  mSec</td>
	<td>^eval($m2-$m1) blocks</td>
</tr>
<tr>
	<td>2.</td>
	<td>^eval($s3-$s2)  mSec</td>
	<td>^eval($m3-$m2) blocks</td>
</tr>
<tr>
	<td>3.</td>
	<td>^eval($s4-$s3)  mSec</td>
	<td>^eval($m4-$m3) blocks</td>
</tr>
</table>
Вот TRIM:
@trim[str;char][chr;tbl]
^if(def $str){
	$chr[^if(def $char){$char}{\s}]
	$str[^str.match[^^$chr*][]{}]
	$tbl[^str.match[^^(.*[^^$chr])$chr*^$]]
	$result[$tbl.1]
}{
	$result[]
}
Вот результаты:
1. 296.875 mSec 23204 blocks 
2. 125.000 mSec  9732 blocks 
3. 109.375 mSec  5624 blocks 
Вариант 1 - это TRIM

И хрен с ней со скоростью 100 миллисекунд или 300 в конце концов не так уж и важно - вон сколько TRIM ресурсов кушает... А для обычного хостинга, где та память, что выделяется процессу, весьма ограничена, это очень критично. Да и медленнее он работает.

Или я мерял неправильно?