我使用的是Jess clear()函数,它有一个缓慢的性能问题(每次调用100毫秒,因为我必须使用它20次,估计时间为2秒)。有没有其他功能(关闭jess引擎的功能,或者删除所有模板、事实和规则的功能)可以让我获得更高的性能?
这在一定程度上取决于您如何运行应用程序。如果您从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对象,结果通常都是这样。但你无法避免,这也不是杰西的问题。