如果我使用以下代码迭代群集:
for (ODocument document : m_database.browseCluster(clusterName)) {
// ...
}
我观察到性能非常差(每秒约10条记录被提取),但前提是只有为Java进程分配了足够的内存。如果我将内存限制在64mb - 一切都运行得很快。
正如我在profiler中看到的那样,在性能较差的情况下,经常会调用OFileMMap.map。而channel.map(....)大部分时间都在消耗。
如果我通过设置file.mmap.strategy = 4来完全禁用mmap - 一切都变得越来越快,但速度不如mmap和受限制的内存分配。
有什么想法吗?