drool 5.1会导致内存泄漏问题吗?我们在调用java代码时使用了复杂的验证规则。每个后端请求加载2-3个drool文件,并为每个请求创建新的KnowledgeBase。
有没有人能对此有更多的了解?
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规则代码
发布于 2012-02-29 23:01:42
我做了很多分析,在Drools 5.1中没有发现任何内存泄漏。如果您正在使用有状态会话,请确保在使用它们之后调用dispose()。如果可能,也建议使用缓存kbase,但按需创建它们应该不会泄漏内存。
除此之外,它就像任何其他java应用程序一样。使用分析器找出哪个类(如果有)将对象实例保留在内存中。
https://stackoverflow.com/questions/9498502
复制相似问题