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