parser

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

 

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

изначально речь не шла о нехватке памяти...

Misha v.3 18.06.2013 12:20 / 18.06.2013 15:29

написал следующий код:
@USE
debug/Erusage.p


@main[]
$sFileSpec[/../temp/t.html]
^if(-f $sFileSpec){
	$f[^file::load[text;$sFileSpec]]
}{
	$f[^file::load[text;http://www.tf2wh.com/overstock.php]]
	^f.save[text;$sFileSpec]
}
$s[]
$sDummy[^f.text.match[<table id="over"[^^>]*>.+?<tbody>(.+?)</tbody>][]{$s[$match.1]}]

^Erusage:measure{
$t[^s.match[<tr[^^>]*><th>(\d+)<th><font[^^>]+>([^^<]+)</font><td><i[^^>]*>(\d+)c</i><td>&times^;(\d+)<td><td>(\d+)<td[^^>]*>(\d+)%][g]]
}[v]

^t.save[/../temp/t.txt]

Count: ^t.count[]<br />
Time: $v.time ms<br />
KB: $v.memory_kb
согласно результатам Erusage, сам match расходует меньше 400 KB и выполняется очень быстро (на моём компе).

P.S. оптимизированием первого match-а я не занимался. да от него можно вообще при необходимости избавиться.