UNF-0.0.4: サイズ削減
今日は久しぶりにUNF(ユニコード正規化ライブラリ)に手を加えていた。
大きな変更点は、正規化用変換テーブルを実現していたTRIEをDAWGにしたこと。
もともとは正規分解と互換分解用に、内容がほぼ等しいTRIEを別々に持っていたので、それを一つDAWGにして共有することでだいぶサイズが節約できた。
# unf-0.0.3 $ ls -lh unf-0.0.3/bin/unf -rwxrwxr-x 1 user user 596K 2011-11-19 17:54 unf-0.0.3/bin/unf # 596KB # unf-0.0.4 $ ls -lh unf-0.0.4/bin/unf -rwxrwxr-x 1 user user 411K 2011-11-19 20:20 unf-0.0.4/bin/unf # 411KB
処理速度も、ごく僅かだけど新しいバージョンの方が速くなっているように見える。
# 17MBのテキストデータの正規化時間 # unf-0.0.3 $ unf-0.0.3/bin/unf-time < 17MB.txt = read: == 172090 lines == average(line length): 99 byte = time: == NFD : 0.203354 sec == NFC : 0.109814 sec == NFKD: 0.215196 sec == NFKC: 0.137385 sec DONE # unf-0.0.4 $ unf-0.0.4/bin/unf-time < 17MB.txt = read: == 172090 lines == average(line length): 99 byte = time: == NFD : 0.199866 sec == NFC : 0.104912 sec == NFKD: 0.206675 sec == NFKC: 0.137277 sec DONE