Jess规则引擎清除功能性能

时间:2014-11-06 14:32:04

标签: rules jess

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

1 个答案:

答案 0 :(得分:1)

这取决于您运行应用程序的方式。如果从Java应用程序调用Jess,则可以简单地

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();
}

但是请注意,根据您的事实和Pojos的数量,任何一个过程都可能会删除大量的Java对象,这通常会产生影响。但你无法避免这种情况,也不是Jess问题。