Inner-most の table 構造の検出

内側に入れ子の table 構造を含まない2×2以上の table 構造を html から検出するプログラムを書いた。ruby正規表現を用いたバージョン (rb td2)と、用いないバージョン (rb td1) と、C 版 (rb td1 の port) を比較してみる。やはり C が速いが、ruby正規表現無し版もそんなに悪くない。

c td 1000      0.570000   0.000000   0.570000 (  0.571921)
rb td1 1000    1.060000   0.000000   1.060000 (  1.058235)
rb td2 1000    2.670000   0.010000   2.680000 (  2.685026)

ruby の C拡張ライブラリは、データ構造に ruby の配列や文字列が使えるので、ruby からあまりストレス無く port することができる。ruby のデータ構造を経由していることで、速度的に不利な点もありそうだが、gcc がきっと頑張ってくれるだろうから、あまり気にしないことにしよう。