流口水伴GC时间长



就我而言,我想使用流口水来处理实时流(来自 kafka(消息作为事实。

在前期工作中,我使用以下代码使用 jvm params(-Xms1500m -Xmx1500m -Xmn500m, jdk 1.8( 测试流口水(版本 7.5.0.Final(:

[代码示例:使用 while 方法模拟连续事实][1]

测试结果是(应用程序运行超过 24 小时(:

控制台监视器

从监视器中获取,我发现GC太高了,我想事实位于工作内存中并带有参考,因此在主要GC收集之前无法释放。

有什么方法可以明确地释放事实吗? 或者如何降低 GC 集合(主要 GC(?

如果您的事实就是事件,您可以利用 Drools 的事件过期策略自动从会话中删除您的事实。

如果没有,您的会话将变得越来越大。流口水需要将所有事实都记在心里才能工作。您可以通过以下选项之一手动从会话中撤回事实:

  • 从规则的右侧使用 delete(fact(。
  • 通过使用 kSession.delete(factHandle( 从您的应用程序中。

希望对您有所帮助,

最新更新