任务单 #5577

Kakasi による分かち書きのパフォーマンスを向上させるパッチ
开放日期: 2005-02-17 22:00 最后更新: 2005-07-12 12:08

报告人:
属主:
类型:
状态:
关闭
组件:
(无)
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
文件:
9

Details

Kakasi による分かち書きのパフォーマンスを向上させるためのパッチです。
変更点は以下のとおり。

1.v0.22.2 では、Kakasi の辞書読み込みをメールの 1 行を処理するたびに
 行っていましたが、これを POPFile が起動したときに読み込み、待機中も
 読み込んだままにするよう改修を行いました。
⇒これにより、POPFile が使用するメモリの量が増えます(私の環境では、
 Mac OS X で約 1MB、Windows 2000 Pro で約 1.4MB の増加)が、
 パフォーマンスが大きく向上します(私の環境でのテストでは、これまで
 平均してメール 1 通を処理するのにかかる時間の約 3 割が、Kakasi の
 処理に費やされていましたが、これが 1 割以下となります)。

(Windows 環境のみ)
2.v0.22.2 では、POP3 の同時接続を可にした場合、Text::Kakasi が
 スレッドセーフでない問題の対処のためにメールの 1 行を処理するたびに
 排他処理を行っていましたが、これを、メール 1 通を処理するたびにする
 ように改修を行いました。
⇒これにより、ボトルネックとなっていた排他処理ルーチンを通る回数が
 少なくなり、パフォーマンスが向上します(私の環境でのテストでは、
 分かち書きにかかる処理が、v0.22.2 に比べて約 2 倍高速になり
 ました)。

1 と 2 の効果により、私の環境では、分かち書きにかかる処理が
v0.22.2 に比べて約 7 ~ 8 倍高速になっています。

以下、使用上の注意です。
・1 の変更により、Text::Kakasi のバージョンを 2.04 にバージョンアップ
 させる必要があります。Windows 環境で利用されている方は、添付の
 アーカイブをダウンロードして該当するフォルダにコピーするか、ppd
 ファイルなどを利用して 2.04 を入手してください。

また、先に投稿した Base64 への対応パッチも取り込んであります。

任务单历史 (3/14 Histories)

2005-02-17 22:00 Updated by: amatubu
  • File 1234: Bayes.pm is attached
2005-02-17 22:01 Updated by: amatubu
  • File 1235: MailParse.pm is attached
2005-02-17 22:05 Updated by: amatubu
  • File 1236: Text-Kakasi-2.04-windows.zip is attached
2005-02-17 22:06 Updated by: amatubu
  • File 1237: Bayes.pm.0.22.2.diff is attached
2005-02-17 22:07 Updated by: amatubu
  • File 1238: MailParse.pm.0.22.2.diff is attached
2005-02-18 11:08 Updated by: daytripper
评论
Logged In: YES
user_id=3855

Windows XP SP1にて試してみましたがうまく起動しません。

■Bayes.pm、MailParse.pm

 Program Files/POPFile/Classifier/
  +- Bayes.pm
  +- MailParse.pm

  上記2点を配置。以前からある同名のファイルはリネームして
  同フォルダ内に放置。

■Text::Kakasi

 Program Files/POPFile/lib/auto/Text/
  +- Kakasi/

  既存の <Kakasi> フォルダをリネーム (<_Kakasi>と変更)
  して残し、展開したアーカイブ内の同名フォルダ「Text」を配
  置。

 Program Files/POPFile/lib/Text/
  +- Kakasi.pm
  +- ParseWords.pm
  +- Kakasi/

  <Kakasi.pm> は既存ファイルをリネーム。同名ファイルを配置。

  <Kakasi> フォルダはこの「lib/Text/」フォルダ内には見あた
  らなかったのでとりあえず <Kakasi.pm> と同フォルダ内に配
  置。

とりあえず上記のようにファイルを配置しましたが、起動しませ
ん。この配置であっているのでしょうか?

# 似た名前のファイルなどが多いので、できればどのファイルをど
# こに配置するのかと言った情報を書いていただけると助かります。

そこで、<Bayes.pm> だけを古いものに置き換えたところ起動しま
した。<Bayes.pm> に何か問題あるのでしょうか?

# 私個人の環境の問題でしたらすいません。
2005-02-18 12:30 Updated by: amatubu
评论
Logged In: YES
user_id=6939

説明不足ですみません。
Text-Kakasi についてはあとで説明を書くつもりが、
書き漏らしていました。すみません。

Text-Kakasi-2.04-windows.zip を展開しますと、
auto と Text フォルダがあらわれます。
lib/auto/* ==> POPFile/lib/auto/ へ
Text/* ==> POPFile/lib/Text/ へ
コピーしてください。
既存のファイルは、ファイル名を変更するのでなく、
別のフォルダ(POPFile/lib 以下以外)に移動していただく
方が安全です(lib フォルダ以下に入っていると、古い
モジュールも読み込まれてしまう場合があるため)。

Bayes.pm と MailParse.pm ==> POPFile/Classifier/ へ
コピーします。既存のファイルは、上記と同様に別のフォルダに
移動するほうが安全です(名前を変更する場合は、最後が
「.pm」で終わらないよう、「Bayes.pm.0.22.2」などにします)。

書かれているメッセージを見る限りでは、古いファイルを
同じフォルダに残したままになっていること以外は問題なさそう
ですので、まずこれをお試しください。
もしそれでも動かない場合はなにか問題があるのかもしれない
ですので、コンソールを表示した状態で起動してみてください。

よろしくお願いします。
2005-02-18 15:03 Updated by: daytripper
评论
Logged In: YES
user_id=3855

ご教示いただいた方法でリネームおよび移動したところ問題なく動
作しました。ありがとうございます。
# こっちじゃなくてフォーラムでやりとりすれば良かった……。

また、(体感ですが) かなり速くなった印象を受けます。

環境
-Duron 1.1GHz 736MB
-Windows XP SP1
-EdMax (Free 2.85.5F)

# 帰宅してからMac OS X 10.3.8でもテストしてみます。
2005-02-19 01:45 Updated by: amatubu
  • File 1240: Bayes.pm is attached
2005-02-19 01:46 Updated by: amatubu
  • File 1241: MailParse.pm is attached
2005-02-19 01:49 Updated by: amatubu
  • File 1242: Bayes.pm.0.22.2.diff is attached
2005-02-19 01:49 Updated by: amatubu
  • File 1243: MailParse.pm.0.22.2.diff is attached
2005-02-19 01:55 Updated by: amatubu
  • 属主 Update from (无) to amatubu
评论
Logged In: YES
user_id=6939

ご報告ありがとうございます。無事動いたようでよかったです。
また、体感できるほど速くなったということで、うれしいですね。

が、私の環境でしばらく使い続けていましたら、あるタイミングから
分かち書きに失敗したり、分かち書きの結果が文字化けしてしまうと
いう問題が発生してしまいました。どうも、Kakasi の辞書を閉じずに
ずっと使い続けるのはあまりよくないようです。
ということで、メールを 1 通処理するごとに辞書を閉じて開き直す
ように改修を行いました。私の環境では、これでも十分速いようです
ので、これでいこうと思います。

また、Windows での POP3 同時接続時の排他処理に穴があることが
わかりましたので、この部分についても改修を行いました。

Classifier/MailParse.pm
Classifier/Bayes.pm

の入れ替えを行ってください。

# Text-Kakasi の入れ替え方法はフォーラムにも書こうと思います。
2005-07-12 12:08 Updated by: amatubu
  • 状态 Update from 开启 to 关闭
  • Ticket Close date is changed to 2005-07-12 12:08
评论
Logged In: YES
user_id=6939

0.22.2 用日本語パッチに統合しました。
http://sourceforge.jp/projects/popfile/files/

Attachment File List

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名