FC2ブログ

記事一覧

anthy-utをハッシュ関数で高速化する!

ページの番号がずれてしまいました。
もしかして:184番[タイトル削除済]

[[G-HAL氏制作の新しいanthy-ghalなら、まわりくどいことは要らないみたいです。]]

Linuxには大層な漢字変換ソフトはないんです。オープンソースで辞書を拡張したり手入れするのは大変。
でも、mozcとanthy-utなら、軽く使う分には問題なし。

うちのCeleron 650MHz PC133 256MBの動態保存パソコン、
mozcはメモリ上を60MBぐらい使うから、こんなパソコンでは動かない。
古いパソコンで、anthy-utを使うと、変換速度が遅くなってしまう。目に見えて。
で、変換が数秒もかかる。

しかし、設定を変えて再コンパイルすれば、うまくいくかも。

anthy-ut、anthy-GHALではFreeBSD、OpenBSDの標準ライブラリについてくるハッシュアルゴリズムを使うようになっています。
BSD以外では使えませんが、
OpenSSLのlibcrypto.soならいろんなUNIXに入っているはずです。ここにはハッシュ関数も入っています。
で、ハッシュを使っているのはソースコードのsrc-diclib/のなので、
Linuxでもlibcrypto.soを使えば辞書を引くのが早くなるかも。

configure.acを直します。


- AC_CHECK_HEADERS([md2.h md4.h md5.h ripemd.h sha.h sha256.h]) dnl Hash library (FreeBSD Only)
+ AC_CHECK_HEADERS([md2.h md4.h openssl/md5.h ripemd.h openssl/sha.h sha256.h]) dnl Hash library (FreeBSD Only)

AC_CHECK_LIB([m], [log10]) dnl math library
AC_CHECK_LIB([md], [MD2Init]) dnl Hash library (FreeBSD Only)
AC_CHECK_LIB([md], [MD4Init]) dnl Hash library (FreeBSD Only)
- AC_CHECK_LIB([md], [MD5Init]) dnl Hash library (FreeBSD Only)
+ AC_CHECK_LIB([crypto], [MD5Init]) dnl Hash library (FreeBSD Only)
AC_CHECK_LIB([md], [RIPEMD160_Init]) dnl Hash library (FreeBSD Only)
AC_CHECK_LIB([md], [SHA_Init]) dnl Hash library (FreeBSD Only)
- AC_CHECK_LIB([md], [SHA1_Init]) dnl Hash library (FreeBSD Only)
+ AC_CHECK_LIB([crypto], [SHA1_Init]) dnl Hash library (FreeBSD Only)
- AC_CHECK_LIB([md], [SHA256_Init]) dnl Hash library (FreeBSD Only)
+ AC_CHECK_LIB([crypto], [SHA256_Init]) dnl Hash library (FreeBSD Only)



src-diclib/anthy-hash.hを直します。



# if !defined(HAVE_MD5INIT)
# error "You have no MD5Init()."
# endif
# if defined(HAVE_MD5_H)
- # include
+ # include
# endif

# elif (256 == ANTHY_HASH_TYPE)
# if !defined(HAVE_SHA256_INIT)
# error "You have no SHA256_Init()."
# endif
# if defined(HAVE_SHA256_H)
# include
# endif
# if defined(HAVE_SHA2_H)
- # include
+ # include




このパッチはかなりいい加減です。
本当はconfigure.acだけ直せば上手くいくかも知れないし、
今後の拡張を考えるとなんとかDataの関数はハッシュアルゴリズムの名前の関数にして
ファイルのハッシュを取る関数は使わないようにしないと。

...で、autoupdateしてautoreconf -fiして、configureすると
なんだかMD5の方は認識されずに、SHA系を使おうとします。で、1か256か512かは分からなかった。
ビルドしてインストールしてみると?

普通に漢字変換が一瞬でできるようになっている。
長文も0.5〜2秒でできるようだ。かなりスラスラうてるようになりました。
これがハッシュの威力です。ものすごい。

...readelfでみてもSHAの関数が見えない!一体本当に何を使っているの?
スポンサーサイト

コメント

No title

はじめまして、fenix.ne.jp の G-HAL と申します。
拙作パッチでのハッシュですが、手作業で適切な箇所に #define ANTHY_HASH_TYPE しないと、CRC32 を使う様になっています。
拝見しましたが仰るパッチですと CRC32 を使っている筈で、速度に変化は出ないと思いますが、なんでしょうね……(?_?)
あと、anthy-ut は更新が止まっている為、古くてバグがあります……。

コメントの投稿

非公開コメント

HTTPS化失敗

現在ページのURLのblog-entry-???などの番号がずれています。

2018年11月までの多くの記事で5番前にずれています。初期の記事の一部は2,3ほどずれています。

申し訳ありませんが修正の上、再度ブックマークしてください。

カテゴリーや月ごとの投稿、コメントは正しいです。

検索エンジンを使う際は、もちろんGoogleのほか、WindowsのBingも結構つかえます。

プロフィール

トロポサイト

Author:トロポサイト
社会の落ちこぼれ。
皆がよくできることはへたくそ。
だれもやろうともしないことは、できる。

多く見られた記事

記事の種類

フリーエネルギー技術のライセンスについて

当ブログによって全く新たに開示されたフリーエネルギー技術は、
11月8日 2018年 12:30 JST以降に取得されたものは
世界の情勢を鑑みて
GNU財団の定めるGPLv3での提供になります。

詳しくはこちら

ええ普通の永久機関のような機密保持契約ではありません
秘密に してはいけない というライセンスです。

商用ライセンスも受け付けていますが、
そんなにうまいこといっていません。

検索フォーム