Dropbox

Peek_Dogさん、JackOneさんがレポートされていた問題の修正版です。(多分、直ってると思います^^;)

[ バグ修正 ]
– 辞書リソースのクローズをミスしていました。そのため漢字変換を多数繰り返すとメモリー・リークもしくはリソースのオープン限界数超えになり、辞書引きが出来なくなってしまいます。そこまで行くとキャッシュに入っている文字しか変換できなくなります。この現象はKKJConvを再起動すれば解消します。 -> 辞書のクローズが確実に行われるように修正。
– キャッシュの入れ替えロジックをひとつ組み忘れていたためキャッシュ内の優先順位が正しくなかった。-> その他、効率が悪い部分も含めて大幅に書き直しました。
– キャッシュ内の検索を効率よくするためハッシュコードを作っていますが、問題があって同じ語が複数キャッシュに入ってしまうことがあった。-> ハッシュコードを作るルーチンを修正した。現在、お使いのキャッシュの中に重複したエントリーが入っている可能性がありますが、いずれ淘汰されていきます。

[ その他の修正 ]
– キャッシュに語を登録する際に以前は単純に漢字+仮名1文字をキャッシュに入れていましたが、仮名1文字が1文字の接続助詞、格助詞である場合(全部とは限らないですが)は漢字のみをキャッシュするようにした。
– Cache Status中のCache sizeの計算を修正。
– E61の文字種変更じの漢字モードへのショートカット。Shiftを押してから文字種キーを押すと漢字モードに変更するようにした。

追記) またいくつか書き忘れ、、、
– Cacheのエントリー数を100から128に増やした。100ではキャッシュサイズを2KBに達しない感じでしたのでエントリーを増やしました。
– Cache内容保管時のルーチン改修。KKJConv終了時にCacheの中身を保管していますが、それに結構な時間がかかっています。これは機種依存性があるかもしれませんがE61において少しだけ速い方法に変えました。もっと大胆に速くすることも検討中。

導入は以下のurlからkkjconv072.zipをダウンロードしbin下にあるKKJConv.jarをデバイス毎の手順に従って導入してください。
http://www.nkozawa.com/html/E61MyProgList.html

ちょっと、キャッシュの弊害なども感じ始めています。ちょっと違和感を覚える順で候補が出るというのが正しいかも。根本的には辞書の語数の問題で単漢字変換した結果がキャッシュされていることにあるのかなと思います。ちょっと時間をかけて考えてみます。

Trackback

14 comments untill now

Add your comment now