Drools-规则数量和磁导空间之间有直接关系吗?

时间:2018-08-29 21:41:04

标签: java drools permgen

我运行了100条规则的流口水决策表,效果很好。但是,一旦我将规则数量增加到1000,我就开始出现permgen空间错误。我必须将permgen的进程增加到256MB,才能容纳3000条规则。我担心的是,随着我不断添加规则,我可能需要越来越多的冷气。

由于此问题,我正在考虑不使用流口水并开发自定义解决方案。

这是正确的观察结果,还是我做错了什么,导致烫发基因空间需求增加

2 个答案:

答案 0 :(得分:0)

从下面的链接看,我们似乎可以禁用Java 7的permgenThreshold,尽管它将对规则评估性能产生负面影响。

https://issues.jboss.org/browse/DROOLS-1016?focusedCommentId=13144411&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13144411

  

增加的对所占的冷气空间的需求不是   是由新的phreak算法引起的,但主要是由于   流口水6约束被消除,即转换为字节码然后   在编译模式下评估,而不是对每个变量继续使用mvel   评价。您可以对permgen空间进行更精细的控制   由流口水使用,设置“ drools.permgenThreshold”系统属性。   此属性表示PermGen使用量的阈值(以   百分比),引擎停止JITting约束并让   它们以解释模式运行。特别是将此属性设置为0   会完全关闭此优化功能,但我不建议您   这样做是因为通过评估   编译模式中的约束确实很重要。我的建议,在   从长远来看,至少是要迁移到不再具有   PermGen空间与普通堆空间分开。

答案 1 :(得分:0)

是的,我们知道这个问题https://issues.jboss.org/browse/RHDM-488