Lucene検索クエリのパフォーマンスを向上させる必要があります。 RAMDirectoryを使用することはできますか?パフォーマンスを最適化しますか?これにはインデックスサイズの制限はありますか? 誰かがRAMDirectoryを使うことの長所と短所を挙げることができたら、私は感謝します。RAMDirectoryを使用する際の賛否両論を知りたい
ありがとうございました。
Lucene検索クエリのパフォーマンスを向上させる必要があります。 RAMDirectoryを使用することはできますか?パフォーマンスを最適化しますか?これにはインデックスサイズの制限はありますか? 誰かがRAMDirectoryを使うことの長所と短所を挙げることができたら、私は感謝します。RAMDirectoryを使用する際の賛否両論を知りたい
ありがとうございました。
RAMDirectoryは高速ですが、ディスクに書き込まれることはありません。プログラムが実行されている間だけ存在し、プログラムを実行するたびにゼロから作成する必要があります。
索引がRAMに快適に収まり、索引を頻繁に更新しない場合は、ディスクに索引を作成してから、RAMDirectory(Directory dir)
コンストラクタを使用してRAMDirectoryを作成できます。クエリは、ディスク上のクエリを実行するよりも速くなければなりません。いったん読み込むとペナルティを支払った後です。しかし、違いを測定してください。インデックスがRAMDirectoryとしてメモリに収まる場合は、ディスクキャッシュにも収まるため、大きな違いはありません。
RAMDirectoryの使用状況をプロファイルする必要があります。少なくともLinuxでは、RAMDirectoryを使用するのは、OSがI/Oをバッファする方法のために、デフォルトのFSDirectoryを使用するよりも高速ではありません。
私はFSDirectoryとRAMDirectoryを比較します。
- インデックスサイズは1.4G
- CentOSに、5Gメモリ
検索千個のキーワード、平均/最小/最大応答時間(ms)であり、ここで
RAMDirectoryはFSDirectoryより高速ですが、 'osファイルキャッシュがウォームアップした'の後では速度差がそれほど明確ではありません。 RMADirectoryの欠点は何ですか?私のテストで
ur入力に感謝します。私はどのくらい小さな "十分に小さい"知っているかもしれませんか? – user43498
私は利用可能な物理RAMよりも小さいと思います。 –