我运行了100条规则的流口水决策表,效果很好。但是,一旦我将规则数量增加到1000,我就开始出现permgen空间错误。我必须将permgen的进程增加到256MB,才能容纳3000条规则。我担心的是,随着我不断添加规则,我可能需要越来越多的冷气。
由于此问题,我正在考虑不使用流口水并开发自定义解决方案。
这是正确的观察结果,还是我做错了什么,导致烫发基因空间需求增加
答案 0 :(得分:0)
从下面的链接看,我们似乎可以禁用Java 7的permgenThreshold,尽管它将对规则评估性能产生负面影响。
增加的对所占的冷气空间的需求不是 是由新的phreak算法引起的,但主要是由于 流口水6约束被消除,即转换为字节码然后 在编译模式下评估,而不是对每个变量继续使用mvel 评价。您可以对permgen空间进行更精细的控制 由流口水使用,设置“ drools.permgenThreshold”系统属性。 此属性表示PermGen使用量的阈值(以 百分比),引擎停止JITting约束并让 它们以解释模式运行。特别是将此属性设置为0 会完全关闭此优化功能,但我不建议您 这样做是因为通过评估 编译模式中的约束确实很重要。我的建议,在 从长远来看,至少是要迁移到不再具有 PermGen空间与普通堆空间分开。
答案 1 :(得分:0)
是的,我们知道这个问题https://issues.jboss.org/browse/RHDM-488