【问题标题】:How can I control cache of the DB4O如何控制 DB4O 的缓存
【发布时间】:2016-06-21 12:29:24
【问题描述】:

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

我很高兴任何可以提供帮助的人。

【问题讨论】:

    标签: memory configuration db4o


    【解决方案1】:

    如果你已经像@Gamlor说的那样做了缓存配置,问题可能是对象损坏,你可以删除这个对象并对数据库进行碎片整理以提高性能

    【讨论】:

    • 这个技术太老了,正是我为了解决它而做的,然后我们改变了我们的数据库,但是谢谢。
    【解决方案2】:

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

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

    也许有更多的缓存。那时我都不记得了。

    【讨论】:

      猜你喜欢
      • 2011-10-01
      • 1970-01-01
      • 2019-08-04
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2012-06-06
      相关资源
      最近更新 更多