5

Drools のパフォーマンスに関する記事 ( JBoss Drools – Performance and Memory Internals ) を読んでいて、Rete ツリーとノードが作成される方法、Drools がそれらにインデックスを付ける方法、および Drools でオブジェクトの数を増やしても実行にかかる合計時間にほとんど影響しない理由について説明しています。それ。インテリジェントな方法で記述されたルールは、Rete ツリー内のノードの数を大幅に削減できるため、パフォーマンスがさらに向上します。

Drools ルール作成のベスト プラクティスがあるかどうかを知りたいので、できるだけ早く実行できるように記述します。

ありがとう。

4

2 に答える 2

4

いくつか挙げることができ...

  • 最も制限的な条件を一番上に置く
  • ルール全体で同じ順序の条件を使用する
  • 必要がない限り、eval を使用しないでください。
  • 条件の一番下に evals を置きます
  • 結果内で if ステートメントを使用しないでください
  • ブール値のショートカットを使用すると、Drools 5.4 で JIT エラーが発生するため、使用しHouse ( windowOpen == true )ないでください。House ( windowOpen )
  • 使用しないでくださいsalience、ほとんどの場合、メンテナンス地獄につながります。

もちろん完全ではありません。私の 2 セントだけです...

于 2012-11-08T20:49:55.270 に答える
3

私はごく最近同じことに取り組み始めたので、この質問に答えるのに完璧な人物ではないかもしれませんが、それでも、

  • あなたが最優先すべきだと思う条件は、それらを一番上に置きます
  • 使用する条件は、入念に準備する必要があります。
  • 適切なルールを作成するために Eclipse-Drool UI を使用して計画を立てる
  • if-statementsthen パーツ内で使用しないでください
  • エラーが発生することが多いため、ブール値のショートカットを使用します
  • 常に RWTE のパターンに従います。つまり、1.RULE 2.WHEN 3.THEN 4.END
  • salience の使用は避けてください。ほとんどの場合、トラブルの原因となります
  • 操作に使用する定義済みのセットではなく、カスタム クラスとルールを統合してみてください
  • 部分が相互にリンクされ、null ではない場合に使用している条件 (つまり、条件は、存在するいくつかの値にリンクする必要があります)。
  • Importステートメントを適切に使用してください...
  • 絶対にこれのリストは終わりがないので、自分自身を更新し続けてください.... :)
于 2014-02-13T08:26:56.037 に答える