2011-10-12 17 views
3

有没有办法记录/监控Drools规则集中的规则所用的时间?如何提高口水的性能?

有没有一种方法,以确保一个规则不执行超过一次(好像在我的情况是发生)

有什么改善的Drools性能的一般准则?

目前我正在使用一个具有100个奇数规则的单个DRL文件。

将提供您需要的任何附加信息。

+0

规则集的执行时间是多少?你能告诉? – Kizz

+0

对不起,我在回应一些其他问题,现在回到性能问题。目前,对于我正在验证的1000条主记录记录,每条规则大约需要60秒。这太高了。如果我把规则集放到少数规则中,1000条记录需要10秒。似乎有些规则花费的时间太长(DB调用在那里),所以我正在研究规则集中正在发生的事情,这需要更多的时间,这会导致内存泄漏(如果存在)等等。谢谢。 – arrehman

回答

4

如果您的目标是记录/监控规则执行,您可以使用事件侦听器,如AgendaEventListener(http://docs.jboss.org/drools/release/5.3.0.CR1/drools-expert- docs/html_single/index.html#d0e2003)或激活Drools MBeans以使用您选择的任何JMX控制台监视Drools应用程序。 MBeans会为您提供每个规则统计信息和汇总统计信息。

如何提高性能是一个非常广泛的问题,答案会比我在这里可以回答的时间要长得多,但简短的版本是:像Drools这样的规则引擎是一个类似于关系数据库的关系引擎,但是具有不同的目标和优化。尽管如此,许多相同的原则也适用,您可以通过先编写严格约束的规则,在多个规则之间共享约束并正确使用推理/链接来提高性能。

只是供参考,如果你在旧金山地区,我们将在规则节(http://rulesfest.org/html/home)下周举行免费的Drools训练营(但你仍需要注册)。 html)我们将在这里介绍很多相关的主题。

+0

谢谢。我正在考虑启用Drools JMX。你能否提供有关如何启用此功能的信息? – arrehman

+0

要么使用知识库配置MBeansOption.ENABLED,要么设置系统属性:drools.mbeans = enabled。 –

+0

感谢它的完美运作。 – arrehman