2014-11-06 65 views
1

我正在使用Jess clear()函数,它具有缓慢的性能问题(每次调用100ms,因为我必须使用它20次,估计时间为2秒)。是否有替代方案(关闭jess引擎的功能,或删除所有模板,事实和规则的功能),我可以使用它来获得更高的性能?Jess规则引擎清除函数性能

回答

1

这取决于你如何运行你的应用程序。如果你从一个Java应用程序调用杰斯,你可以简单地

for(int i = 0; i < 20; i++){ // 20 times 
    jess.Rete rete = new jess.Rete(); 
    // load functions, templates, rules, facts,... 
    rete.run(); 
} 

不是

jess.Rete rete = new jess.Rete(); 
// load functions 
for(int i = 0; i < 20; i++){ // 20 times  
    // load templates, rules, facts,... 
    rete.run(); 
    rete.clear(); 
} 

不过需要注意的是,根据你的事实和POJO的数量,无论是程序可能会删除大量的Java对象,通常的结果。但是你将无法避免这种情况,也不是杰西问题。

+0

是的我使用Java,我改变了代码,但它不起作用 – 2014-11-06 20:31:11

+0

“不工作”是非常明智的。 – laune 2014-11-06 20:33:29

+0

我得到空指针异常 – 2014-11-08 21:59:17