在我的情况下,我想使用drools处理实时流(来自kafka)消息作为事实。
在预工作,我测试与JVM PARAMS以下代码的drools(版本7.5.0.Final)(-Xms1500m -Xmx1500m -Xmn500m,JDK 1.8):
[code sample : simulate continuous facts with while method][1]
测试结果是(应用程序运行超过24小时):
从显示器中获取,我发现GC太高了,我猜这个事实是位于工作内存中的参考,所以在主要的GC采集之前不能释放。
有没有任何方法可以明确地释放事实?或者我如何降低GC集合(主要GC)?
答案 0 :(得分:1)
如果您的事实属于事件,则您可以利用Drools' expiration policies个事件自动从会话中删除您的事实。
如果没有,您的会话将变得越来越大。 Drools需要记忆中的所有事实才能发挥作用。您可以通过以下选项之一手动收回会话中的事实:
希望它有所帮助,