[Reference:<_A11@freyasx.ML_>]
Newsgroups: mail-lists.freyasx
[FreyaSX] Re: FreyaSX-0.98.1 リリース ( ちょっと修正)
On 08/04/04(00:28) you ysato@delegate (Yutaka Sato) wrote
in <_A11@freyasx.ML_>
|On 07/26/04(18:11) you ysato@delegate (Yutaka Sato) wrote
|in <_A10@freyasx.ML_>
| |単純にすっきり解決したいので、ポインタ(pos_t)を64ビットに拡幅して解決
| |しました。
| |
| | テキストポインタ = {ドキュメント番号:31, 種別:6, 文字位置:26}
|
|これによって、処理速度が2割ばかり遅く、ファイルが7割がた大きくなったり
|してましたので、ポインタの保存時の差分圧縮前に、なるべく下位のビットに
|値が収まるようにシャッフルするようにして、ほぼ元のサイズに戻りました。
|
|それで 0.97.2 として出そうかと思っていたのですが、処理速度を上げる
|ためにあちこち手を突っ込んでいるうちに、大幅な改善のためには、どうも
|索引ファイルに格納されているレコードの構造を元から変更しないと難しそう
|ということになりました。そんなわけで、.idxファイルはブロック化されて
|いたものをべたべたの逐次書き込みファイルに、.lexには単語属性などを拡張
|可能なように変更しました。.lex については簡単なポインタの圧縮も入れて
|半分くらいに小さくなりました。このへんのちゃんとした比較はまた後日
|やりたいと思います。
|性能については、0.97.1 の2倍位の高速になりました。
0.98.0 で、findex 後に呼び出される索引ファイルのマージを大改造したの
ですが、その部分は fmerge からも呼ばれています。fmerge の場合には
後からマージする索引のドキュメント番号にそれ以前の索引のドキュメント
の総和を表すオフセット(実際にはドキュメント数)を足し加えるという処理
だけが違うのですが、この、それ以前の索引の総和というのが64ビットの
ポインタになっています。ところがこれをなにげにintにコピーして使って
しまったために問題が起こってました。
ついでなので、作成した索引ファイルのサイズを最期に表示する機能を加え
ました。
D G
┌─┐┬┌──┬┐ //\^^ ( - ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_< >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)
|