如何控制DB4O的缓存

时间:2016-06-21 12:29:25

标签: memory configuration db4o

我在查找有关DB4O的文档时遇到一些困难。如何控制DB4O的缓存?我认为它的连接正在消耗我们服务器的所有内存。我想设置最小缓存配置。 任何人都可以向我推荐一些文件或给我一些例子吗?

我很高兴能有所帮助的人。

2 个答案:

答案 0 :(得分:1)

如果您已经按照@Gamlor的说明进行了缓存配置,则问题可能是对象损坏,您可以删除该对象并整理数据库碎片以提高性能

答案 1 :(得分:0)

我建议用探查器查看它。然后你可以看到什么类的课程占用空间。

db4o的典型缺陷是“对象容器”#39;长时间保持打开,激活深度高。然后你的对象图的很大一部分保存在内存中。

尝试一些小鸟:

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);

也许有更多的缓存。我不记得所有这些。