我使用Drools 7.0来评估我的电子商务网站购物车中的促销活动。我有2300个促销/规则。
我可以看到在执行 StatefulKnowledgeSessionImpl.fireAllRules()期间 StatefulKnowledgeSession 消耗了太多内存(大约500MB)。从堆转储分析,我可以看到它主要是由于创建的 BetaMemory 对象(大约260K)。
GC后清理内存但由于GC过于频繁而导致性能问题。
我想这可能来自我的规则的复杂性,但我无法指出问题,我可能有不同的规则类型。
您是否有分享提示,以便我可以解决问题,并了解为什么网络评估会创建如此多的 BetaMemory 对象。