9

FSDirectoryとMMapDirectoryの違いを教えてもらえますか?キャッシュをウォームアップしたい。これは役立つ可能性があることを読みましたが、これがキャッシュのウォーミングアップにどのように役立つかを見つけることができませんでした。何かアイデアがあれば説明してください。ポインタも大歓迎です。

Luceneのドキュメントによると、MMapは仮想メモリを使用してインデックスのルックアップを高速化します。

スピードアップがどのように達成されるか、そしてインデックスが大きくて仮想メモリに収まらない場合はどうなるか>

4

2 に答える 2

10

MMapDirectory抽象FSDirectoryクラスの具体的なサブクラスの1つです。メモリマップトファイルを使用して、インデックス内の情報にアクセスします。

他のオプションはとSimpleFSDirectoryNIOFSDirectory、異なる方法を使用します。3つすべての簡単な説明については、のドキュメントをFSDirectory参照してください。ご覧のとおりFSDirectory.open(File)、ご使用の環境に最適な実装を選択してください。

私自身の経験では、との間のパフォーマンスに大きな違いはありませNIOFSDirectoryMMapFSDirectoryが、独自のデータとハードウェアのセットアップを使用してパフォーマンステストを行う必要があります。

を使用することになった場合MMapFSDirectory、仮想メモリとインデックスサイズは、32ビットマシンでのみ問題になる可能性があります(インデックスが2 ^48ビット=32TBより大きい場合を除く)。

于 2012-05-09T00:44:39.127 に答える
1

インデックスが仮想メモリに収まらない場合は、FSDirectoryを使用した方がよいでしょう。問題は、仮想メモリに収まらないときにMMapDirectoryを使用することは、FSDirectoryを使用してOSのキャッシュアルゴリズムを使用することと同等であるということです(OSのキャッシュアルゴリズムは、手動でコーディングできるものよりも優れている可能性があります)。(どちらの場合も、インデックスの一部のみが一度に物理メモリに存在するため、「同等」です。)

しかし、「martin」が上で述べたように、あなたはあなた自身のいくつかのパフォーマンステストをする必要があります。

于 2012-05-09T11:43:26.420 に答える