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