寻找使 Drools / Optaplanner 更快的方法
Looking for ways to make Drools / Optaplanner faster
我正在开展一个顶点项目,使用 Optaplanner 6.2.0.CR4
和 Drools
对解决方案进行增量评分。该问题与 Optaplanner's Nurse Rostering example
非常相似,只是增加了一点复杂性。我想知道是否有任何常见的陷阱会降低 Drools 的速度,我可以在我的代码中寻找这些陷阱。求解器运行 Construction Phase
非常快,但在到达 local search phase
时撞墙了。 Drools 插入了很多额外的东西,比如计算每个支付周期的工作天数、每个支付周期的特定持续时间块等,我认为我编写规则的方式可能是问题所在。
参见文档 "Score performance tricks"。尤其要注意你的 "average score calculation count per second"。应该在1000
以上,最好在10000
.
以上
使用the OptaPlanner benchmarker.它会是你最好的朋友,推我:)
注意:问问自己:"faster" 是什么意思?您想要同时获得更好的结果吗?您想要更快地获得相同的结果吗? And/Or 你想横向扩展更多吗?可能需要做出权衡选择 - 使用 OptaPlanner Benchmarker 查看所有 3 个方面的纯收益,但也可视化这 3 个方面之间的权衡。
我正在开展一个顶点项目,使用 Optaplanner 6.2.0.CR4
和 Drools
对解决方案进行增量评分。该问题与 Optaplanner's Nurse Rostering example
非常相似,只是增加了一点复杂性。我想知道是否有任何常见的陷阱会降低 Drools 的速度,我可以在我的代码中寻找这些陷阱。求解器运行 Construction Phase
非常快,但在到达 local search phase
时撞墙了。 Drools 插入了很多额外的东西,比如计算每个支付周期的工作天数、每个支付周期的特定持续时间块等,我认为我编写规则的方式可能是问题所在。
参见文档 "Score performance tricks"。尤其要注意你的 "average score calculation count per second"。应该在1000
以上,最好在10000
.
使用the OptaPlanner benchmarker.它会是你最好的朋友,推我:)
注意:问问自己:"faster" 是什么意思?您想要同时获得更好的结果吗?您想要更快地获得相同的结果吗? And/Or 你想横向扩展更多吗?可能需要做出权衡选择 - 使用 OptaPlanner Benchmarker 查看所有 3 个方面的纯收益,但也可视化这 3 个方面之间的权衡。