流口水5.1会导致内存泄漏问题吗? 我们正在使用复杂的验证规则来调用java代码。 每个请求都会为每个请求创建后端加载2-3个drool文件和新知识库的请求。
任何人都可以对此有更多的了解吗?
private void initRulesEngine() {
kbase = KnowledgeBaseFactory.newKnowledgeBase();
if (kbuilder != null) {
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
}
}
public void executeRules(BaseUOW requestedUOW) {
initRulesEngine();
ksession = kbase.newStatefulKnowledgeSession();
ksession.insert(requestedUOW);
ksession.fireAllRules();
}
这是我们的Drool规则代码
答案 0 :(得分:1)
我做了大量的分析,并没有在Drools 5.1中发现任何内存泄漏。如果您正在使用有状态会话,请确保在使用后调用dispose()。如果可能的话,也建议使用缓存kbases,但是按需创建它们不应该泄漏内存。
除此之外,它就像任何其他Java应用程序一样。使用分析器查找将对象实例保留在内存中的类(如果有)。