次のコードを使用して、クラスターを反復処理する場合:
for (ODocument document : m_database.browseCluster(clusterName)) {
// ...
}
Java プロセスに十分なメモリが割り当てられている場合に限り、パフォーマンスが非常に低くなります (1 秒あたり約 10 レコードがフェッチされます)。メモリを 64 MB に制限すると、すべてが非常に高速に実行されます。
プロファイラからわかるように、OFileMMap.map は、パフォーマンスが低い場合に非常に頻繁に呼び出されます。そして channel.map(....) はほとんどの時間を消費します。
file.mmap.strategy=4 を設定して mmap を完全に無効にすると、すべてが高速になりますが、mmap や制限されたメモリ割り当ての場合ほど高速ではありません。
何か案は?