【发布时间】:2016-06-21 12:29:24
【问题描述】:
我很难找到有关 DB4O 的文档。如何控制 DB4O 的缓存?我认为它的连接正在消耗我们服务器的所有内存。我想设置最小缓存配置。 谁能推荐我一些文件或给我一些例子?
我很高兴任何可以提供帮助的人。
【问题讨论】:
标签: memory configuration db4o
我很难找到有关 DB4O 的文档。如何控制 DB4O 的缓存?我认为它的连接正在消耗我们服务器的所有内存。我想设置最小缓存配置。 谁能推荐我一些文件或给我一些例子?
我很高兴任何可以提供帮助的人。
【问题讨论】:
标签: memory configuration db4o
如果你已经像@Gamlor说的那样做了缓存配置,问题可能是对象损坏,你可以删除这个对象并对数据库进行碎片整理以提高性能
【讨论】:
我建议使用分析器查看它。然后你可以看到什么样的类占用空间。
db4o 的一个典型缺陷是“ObjectContainer”长时间保持打开状态,并且激活深度很高。然后你的对象图的很大一部分被保存在内存中。
一些尝试:
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);
也许有更多的缓存。那时我都不记得了。
【讨论】: