2

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

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

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

4

2 回答 2

0

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

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

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

于 2013-11-11T09:09:49.090 回答
0

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

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

希望能帮助到你,

于 2013-11-11T09:40:09.053 回答