我在查找有关DB4O的文档时遇到一些困难。如何控制DB4O的缓存?我认为它的连接正在消耗我们服务器的所有内存。我想设置最小缓存配置。 任何人都可以向我推荐一些文件或给我一些例子吗?
我很高兴能有所帮助的人。
答案 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);
也许有更多的缓存。我不记得所有这些。