我们正在使用Drools Planner 5.4.0.Final。 我们想要分析我们的java应用程序,以了解我们是否可以提高性能。 有没有办法分析需要评估规则的时间? 我们使用了很多eval(....),我们的“每秒平均计算次数”接近37次。删除所有eval(...)我们的“每秒平均计算次数”保持不变。
我们已经对应用程序进行了分析,我们看到大部分时间都用在了doMove ... afterVariableChanged(...)。
所以我们怀疑我们的一些规则是低效的,但我们不明白问题出在哪里。
谢谢!
答案 0 :(得分:3)
每秒体面的平均计算次数高于1000
(至少),高于5000
。按顺序执行以下步骤:
1)首先,我强烈建议升级到6.0.0.CR5
。只需关注the upgrade recipe ,即可在几个小时内逐步指导您。由于一些改进(选择器,约束匹配系统......),仅此一项就会使平均计算次数翻倍(并且可能会更多)。
2)用enabling logging打开黑匣子:首先是DEBUG,然后是TRACE。日志可以显示移动是否缓慢(=规则缓慢)或步骤初始化缓慢(=您需要JIT选择)。
3)使用stepLimit benchmark技术找出哪些规则很慢。
4)使用benchmarker(如果您还没有)并使用JIT选择,延迟接受等。请参阅文档中的这些主题。