Memory 如何控制DB4O的缓存

Memory 如何控制DB4O的缓存,memory,configuration,db4o,Memory,Configuration,Db4o,我很难找到关于DB4O的文档。如何控制DB4O的缓存?我认为它的连接消耗了我们服务器的所有内存。我要设置最小缓存配置。 有人能给我推荐一些文件或给我寄一些例子吗 我很高兴能为您提供帮助。我建议您使用剖析器查看它。然后您可以看到什么样的类占用空间 db4o的一个典型缺陷是“ObjectContainer”长时间处于打开状态,激活深度高。然后,对象图的很大一部分保存在内存中 一些nob可以尝试: configuration.common().weakReferenceCollectionInterv

我很难找到关于DB4O的文档。如何控制DB4O的缓存?我认为它的连接消耗了我们服务器的所有内存。我要设置最小缓存配置。 有人能给我推荐一些文件或给我寄一些例子吗


我很高兴能为您提供帮助。

我建议您使用剖析器查看它。然后您可以看到什么样的类占用空间

db4o的一个典型缺陷是“ObjectContainer”长时间处于打开状态,激活深度高。然后,对象图的很大一部分保存在内存中

一些nob可以尝试:

configuration.common().weakReferenceCollectionInterval(milli-secs);
db4o清除其弱引用缓存系统的频率。如果你降低这个时间间隔,清理就更具攻击性

有一个文件级缓存。我认为默认值相当低。无论如何,以下是设置:

Storage fileStorage = new FileStorage();
// A cache with 128 pages of 1024KB size, gives a 128KB cache
Storage cachingStorage = new CachingStorage(fileStorage,128,1024);
configuration.file().storage(cachingStorage);

也许还有更多的储藏室。我不记得当时的一切

如果您已经进行了如上所述的缓存配置,则问题可能是对象已损坏,您可以删除此对象并对数据库进行碎片整理以提高性能

此技术太旧,正是我为解决此问题所做的,然后我们更改了数据库,但谢谢。