2014-11-06 55 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