java - Drools Planner 规则分析

标签 java drools drools-planner optaplanner

我们正在使用 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/

相关文章:

java - 使用 MySQL DB 中的一些数据填充 Swing 表

java - AWS 相当于 system.out.println()?

流口水 drl 如何做没有条件

c++ - 在 c++/c# 中替代 drools-planner/optaplanner?

java - Netbeans:更改包位置而不移动文件

java - 如果数据存在则 hibernate 并保存正确的外键

java - 从 drools 5 (5.5.0.Final) 到 drools 6 的升级过程

java - 从 BRMS 动态加载规则

java - OptaPlanner CVRPTW - 持续交付

java - 在解决时间问题的同时移动链式规划实体