Igo-0.4.3: 若干のパフォーマンス向上
Gomoku(0.0.4)で得た知見の一部をIgo(0.4.3)に取り込んでみた。
形態素解析の部分が少し速くなっている。
比較
MeCab(0.98)、Gomoku(0.0.4)、Igo(0.4.2,0.4.3)の処理速度の比較*1。
以前とはマシンも変わっているので、全部計り直した。
計時には約80MBの日本語テキストデータを用いた。
※ その詳細と計時に使用したプログラムに関しては後述
辞書には全てMeCabのサイトより入手可能なmecab-ipadic-2.7.0-20070801を使用している。
総処理時間(1) | 起動+行読み込み+辞書ロード 時間(2) | 解析時間(1 - 2) | |
MeCab(0.98) | 15.381s | 0.101s | 15.280s |
Gomoku(0.0.4) | 16.458s | 0.565s | 15.893s |
Igo(0.4.2) | 20.351s | 0.638s | 19.713s |
Igo(0.4.3) | 18.792s | 0.638s | 18.154s |
MeCab、Gomokuよりはまだ一段遅いけど。
テキストデータ
計時に用いたデータは、次のようにして取得可能。
$ wget http://file.reduls.net/blog/20110618/20110618.txt.tar.xz # ダウンロード $ tar Jxvf 20110618.txt.tar.xz # 解凍 $ ls -lh 20110618.txt -rw-r--r-- 1 user user 78M 2011-06-18 00:33 20110618.txt
内容的は以下の二種類のデータの混合:
計時方法
# 計時用ソースコードを取得 # - 使い方等に関しては、ソースコードのコメントも参照のこと $ wget http://file.reduls.net/blog/20110618/mec.cc $ wget http://file.reduls.net/blog/20110618/read_line.h # コンパイル ※ MeCab本体は既にインストール済みと仮定する $ g++ -O3 -omec mec.cc `mecab-config --libs` # 計時 $ time ./mec 20110618.txt
Gomoku:
# 計時用ソースコードを取得 $ wget http://file.reduls.net/blog/20110618/GomokuBench.java # コンパイル $ javac -cp gomoku-0.0.4.jar GomokuBench.java # 計時 $ time java -server -cp .:gomoku-0.0.4.jar GomokuBench < 20110618.txt
Igo:
# 計時用ソースコードを取得 $ wget http://file.reduls.net/blog/20110618/IgoBench.java # コンパイル $ javac -cp igo-0.4.2.jar IgoBench.java # 計時 $ time java -server -cp .:igo-0.4.2.jar IgoBench Igoバイナリ辞書 < 20110618.txt # ver0.4.2用 $ time java -server -cp .:igo-0.4.3.jar IgoBench Igoバイナリ辞書 < 20110618.txt # ver0.4.3用
*1:例によって厳密では全くない。参考程度。