1

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

4

1 回答 1

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

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

于 2014-11-06T15:40:51.150 回答