3

これは私の前の質問のフォローアップです。次の形式の決定木があります。ディシジョン ツリー図

それを Drools Expert のルールに変換したいと考えています。の使用insertLogical提案されています。Drools のドキュメントには、次のように書かれinsertLogicalます。

insertLogical(new Something()); insert に似ていますが、現在実行中のルールの真偽を裏付けるファクトがなくなると、オブジェクトは自動的に取り消されます。

これらのオブジェクトが取り消されるという事実は便利です (メモリ内に何万ものオブジェクトがあり、それぞれがこれらの束を作成するため)。retract(object)作業メモリからオブジェクトを削除するメソッドもあります。エンド ノードに到達し、そこに到達するretractベース オブジェクトを (ディシジョン ツリーに従って) 削除すると、トラバーサル中に作成されたこれらの一時オブジェクトもすべて削除されますか?insertLogical

4

1 に答える 1

4

私の経験から言えば、答えはNoです。指定した唯一のオブジェクトは Drools の作業メモリから取り消されますが、オブジェクト間の参照はすべて JVM メモリに保持されます。オブジェクトの参照をどこかに保持している場合は、撤回されたオブジェクトを再注入することもできます。

于 2011-02-04T10:28:48.203 に答える