我想根據規則的數量和規則的複雜性來衡量流口水的性能。因此,我需要測量處理事件所需的時間。我想寫一個簡單的測試是這樣的:Drools融合:衡量性能
long start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
insertHeartRate(150, 0, macAddress);
ksession.fireAllRules();
}
long stop = System.currentTimeMillis();
System.out.println("Running time: " + (stop - start));
我面臨的問題是,這並不工作,因爲你可以插入你想多 事件和後來的Drools也可以進行處理。所以這個 部分的時間總是少於一秒。所以我的問題是,如何處理所有事件後,我如何 請致電long stop = System.currentTimeMillis()
?
我正在使用窗口:時間。我對Esper(另一個cep引擎)也是這樣做的,即使我也使用win:time,這個循環也可以工作。想到的一個解決方案是在所有其他觸發特定規則的事件之後插入事件,並在此規則觸發時執行'long stop = System.currentTimeMillis();'。但我寧願避免這種情況,是否有另一種方式? – Tim
從fireAllRules返回後不應該發生任何事情。 – laune
奧克,但我應該如何衡量執行時間,當有窗口的規則:時間?何時執行fireAllRules需要很長時間才能處理所有事件。這是我想要衡量的。我怎樣才能做到這一點? – Tim