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