刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

クローラの高速化

新しいサーバでも相変わらずクローラが超cpu boundなため、高速化のために手を打つ。pypy使おうと思ったけど、面倒くさすぎて諦めた。
とりあえず気軽に使えるcythonに切り替え。特別なsyntaxは全く使わず、ただコンパイルしてみたけど、大きな変化はなし。

ちなみにdebian squeezeのcythonは古過ぎてyieldやlambdaのサポートがないっぽかったので、easy_installで入れなおした。


$ python -m cProfile -s cum ./bin/crawl.py

  • sはtimeとかでもいいけど、cumulative timeを見ながらtottimeを見るのがわかりやすいと思う。

で、問題はfeedparserが糞遅いということがわかった。

http://code.google.com/p/feedparser/issues/detail?id=300

5.0.1で糞遅くて、5.1.1に上げたら糞遅かった箇所が一つ減ってたっぽい。
ちなみにdebian squeezeのfeedparserは4.1.4なので、多分さらにうんこ。

追記:
よく読んでみたら4.1のほうが速い。腹立たしい。