青空文庫とにらめっこ

機能作り直したプログラムで実際にどの程度回文が見つかるのかを検証。
青空文庫の全テキストをぶん回すぞーっ!意気揚々とプログラムを動かし始めたが…


遅い!遅すぎる!


1時間経過して30個ほどしか消化できていません。
全部で5000個もあるんですよ・・・ちょっおまって感じですよ。はう。


想像以上に遅いので全体を見直して遅そうなところを探します。致命的に遅かったのはこれもまた昨日書いたやつで、回文が別の回文を完全に内包していたら吸収するという処理でした。forループを完全に2回まわしていたので1000個見つかると100万回ループするわけですが、当然遅い。1000個で3000回ぐらいのループまで減らしました。


他にもあれこれ手を加えて一通り改善できるところを修正。修正したけどやっぱり1MB(100万文字)のテキストを処理するとなると1個で1時間くらいかかります。結局今日できたのは84個のテキストでした。


進んだ気がしない・・・。