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