近況。我が家のG3復活。
SQLiteのinner joinが遅いという情報を得たので、ちょっと複雑めなクエリーをinner joinからouter joinに書き換えたところ、今まで5秒くらい掛かっていたページのレンダリングが2秒切るようになった。
クローラのXMLパース部分のXPathを書き換えたら、多分20%くらい高速化した。明らかにクローラー実行時の文字が流れる速さが(ちょっとだけ)違う。XPathで深い階層を取るときはフルパスを記述するより、ワイルドカードっぽい、出来るだけ短いパスを指定した方が速いっぽい。
こういうときはコードを書いて示した方がいい気もするけど、別にベンチマークもとってないし面倒くさいし後回し。
ノートでVMWareが動かなくなり、Linuxの使用が難しくなったのと、データの取り扱い範囲が広がってクロールに10時間くらい掛かるようになってきたため、仕方なく居間で埃を被っていたPower Mac G3を久方ぶりに起動した。G3つったら、確か俺が高一くらいのときに我が家に嫁いで来た3世代前のコンピュータ。
Mac OS XはFreeBSDベースだという事を知ってはいたものの、最近までUNIXの作法を知らなかったのでその恩恵を実感する事はなかったのだけど、実際LINUXを学んで、同じ方法を試してみるといとも簡単に通用したので結構感動した。Macって本当にUNIXだったんだ!と。
ソースコード落としてSQLiteをコンパイルしたりCPAN設定したりと環境を整えて、Linux上で作ったクロールプログラムを走らせて見たらあっけなく動いた。すげー。速度的にも、ファイルアクセスは明らかに劣るものの、XMLパース部分はPenM1.3GHzノートにもひけを取らないパフォーマンスを見せてくれた。G3、まだまだイケる。
SSHサーバーでも立てて外からいじれるようにしてしまおうかなぁ。