【问题标题】:Drools clear up working memory流口水清除工作记忆
【发布时间】:2013-11-11 09:04:18
【问题描述】:

我的网络应用程序具有供用户参加考试的功能。我使用口水来评估分数并衡量知识水平。我正在使用有状态的知识会话。我的情况是这样的。

  1. 每次用户参加考试时,都会在规则中插入 2 个 java bean,一个用于评估分数,另一个用于结果。
  2. 当用户完成考试时,考试结果将存储在数据库中。
  3. 之后下一个用户将进入同一个周期

我的问题是我必须在一个用户之后清除工作记忆吗?如果是,我该怎么做?

【问题讨论】:

    标签: java drools


    【解决方案1】:

    如果您使用有状态会话,请确保在使用它们后致电dispose()。如果可能,还建议缓存 kbase,但按需创建它们无论如何都不会泄漏内存。

    您应该尝试 profiling 以发现 Drools 中的任何内存泄漏。

    除此之外,它就像任何其他 java 应用程序一样。使用分析器找出哪些类(如果有)将您的对象实例保留在内存中。

    【讨论】:

    【解决方案2】:

    如果您在所有考试中重复使用相同的 ksession,请确保收回您在会话执行期间插入的事实。 insertLogical() 在这种情况下可能会有所帮助。

    如果您在每次考试中使用一个会话,则只需在使用后处理该会话。

    希望对你有帮助,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多