crftwr / cfiler

python based file commander

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Grep の高速化

crftwr opened this issue · comments

ファイル名パターンと
無視するディレクトリパターンを指定させるようにしたら
もっと高速にできる。

splitlines せずに re.findall か、re.finditer を使うことで高速化できるかもしれない。
あるいは、splitlines ではなくて、イテレータを使うことで1行ずつ検索したら、
メモリコピーを1回分減らすことができるかもしれない。

StringIO を使うと、splitlines せずに済ますことができそうだが、計測してみると余計に遅くなってしまうようだ。
from cStringIO import StringIO
def iterbuf(buf):
stri = StringIO(buf)
while True:
nl = stri.readline()
if nl != '':
yield nl.strip()
else:
raise StopIteration