我已经在嵌入式Orientdb数据库v1.7.7上进行了一些性能测试。

同一查询执行多次。第一次查询执行需要花费一些时间,但随后的执行要快得多。

我猜OrientDB正在缓存很多东西。所以我想禁用缓存。

orientdb caching上的文档说:

OGlobalConfiguration.CACHE_LOCAL_ENABLED.setValue(false);


由于此配置属性不存在,我不得不修改此代码,所以我写道:

OGlobalConfiguration.CACHE_LEVEL1_ENABLED.setValue(false);
OGlobalConfiguration.CACHE_LEVEL2_ENABLED.setValue(false);


但是即使使用这种配置,我的问题仍然存在。第一次查询执行需要花费一些时间,但随后的执行要快得多。

最佳答案

这是因为有DiskCache。将其视为操作系统的内存映射的替代。它处理从RAM到磁盘的页面加载/保存:

https://github.com/orientechnologies/orientdb/wiki/plocal-storage-disk-cache

您可以通过将全局配置“ DISK_CACHE_SIZE”设置为要分配的大小(MB)来更改它。在使用OrientDB之前,请执行以下操作:

OGlobalConfiguration.DISK_CACHE_SIZE.setValue( 1000 ); // 1GB


此设置是针对每个数据库的,因此,如果您有多个数据库(同一个数据库没有多个用户),则应正确分配它。

08-04 03:16
查看更多