1

我们正在使用 Drools Planner 5.4.0.Final。我们想要分析我们的 java 应用程序以了解我们是否可以提高性能。有没有办法描述需要评估规则的时间?我们使用了很多 eval(....) 并且我们的“每秒平均计算计数”接近 37。删除所有 eval(...) 我们的“每秒平均计算计数”保持不变。

我们已经对应用程序进行了概要分析,我们看到大部分时间都花在了 doMove ... afterVariableChanged(...) 中。

所以我们怀疑我们的一些规则效率低下,但我们不明白问题出在哪里。

谢谢!

4

1 回答 1

4

一个不错的平均每秒计算计数高于1000(至少),高于5000. 请按顺序执行以下步骤:

1) 首先,我强烈建议升级到6.0.0.CR5. 只需遵循升级配方,它将在几个小时内逐步指导您。由于多项改进(选择器、约束匹配系统……),仅此一项就会使您的平均计算次数翻倍(并且可能更多)。

2) 通过启用日志记录打开黑匣子:首先是 DEBUG,然后是 TRACE。日志可以显示移动是否缓慢(= 规则很慢)或步骤初始化很慢(= 您需要 JIT 选择)。

3) 使用stepLimit 基准技术找出哪些规则很慢。

4) 使用基准测试器(如果您还没有)并使用 JIT 选择、延迟接受等。请参阅文档中的这些主题。

于 2013-10-29T11:26:05.370 回答