質問
を使用しましたDroolsソリューションとして、一種のフィルタは非常に激しい処理アプリケーションも走行が100のルール500,000+メモリにオブジェクト。出していくことが非常に遅くなります。誰しての経験をDrools、バッチ式処理アプリケーション?
解決
んの最新バージョンのDrools(最終使用させていただきましたのでした前年は、当社の高負荷のベンチマークでそれが正しいことを突き止する全く遅くなります。大きな失望した後に基づくりの建築です。
少なくとも良いものをしゃべっていdroolsすることにdevチームでしたIRCを利用すると便利がいいの専門家が結局のところ、 irc.codehaus.org #drools
他のヒント
の種類により異なりルール-500Kオブジェクトを考えると妥当なところかな十分なメモリをしなければならない移植をRETEネットワークメモリ、メモリ使用量は、複数の500K物-ieスペースオブジェクト+スペースのためのネットワーク構造の指標など)-その可能だページングディスクとなるも遅くなります。
もちろん、いルールに合わせ組み合わせの種類が引き起こすことが可能な爆発の組み合わせてみる場合も、1ルールは本当に本当に遅くなります。また情報の分析を行っているたるでしょう支援することも可能です。
私は使ってDrools、ステートフルメモリを含め,1Mを超える。一部のチューニングファイルのどれも見つからない規則及び基になるJVMのパフォーマンスが非常に良い数分後に初期開始します。っています。
文droolsすが、自分のようになったかもしれない何かが足りないなんですが、そのバッチの五百万物に追加メモリでは一回しか出来ないのですか?理由はただそれだけで考えているルールを蹴る場合のみ、二つ以上の項目をバッチ。
場合はそうではない場合は、そのあとだれかを使用状態なしでセッションを主張するつのオブジェクトです。いルール実行500k倍に高速化する場合があります。
ものであっても、場合には、すべてのルールを必要とするすべての500k物?きく速度が上昇するでしょうをた項目によるルール時間が、その後の第二段階処理の適用のバッチレベルの規則をrulebase、ワーキングメモリ?このような変化のデータ量がRETEネットワークが小さくな単純なルールが削除されている。
代替的なアプローチして、特定の関連団体のオブジェクトを主張するのオブジェクトグループについては、第二期の更なる削減量のデータをメモリなどの分割にRETEます。
Droolsによって設計されている膨大な数のオブジェクト。こンの運用に適した複雑なルール数オブジェクト。
のメモリの初期化のための追加オブジェクト、もしあなたのキャッシュ戦略に動作するように設計されていた作動記憶オブジェクトです。
私の問題OutOfMemory後誤差解析-数千のオブジェクト。設定の異なるデフォルトオプティマイザに解決の問題です。
OptimizerFactory.setDefaultOptimizer(OptimizerFactory.SAFE_REFLECTIVE);
またdroolsとなっているが、実際のオブジェクト数が低いことではない。ん読書が交互にバージョンの同じアルゴリズムがメモリ使用量がりを考慮し、最適化されたスピードはとてもきれいに基づく同じアルゴリズムです。だ載したものではありませんでリアルに使える図書館のものです。
使用状態なしでセッションを追加し物の一つです。
このオプティマイザを設定することもできます使用のパラメータ -Dmvel2.有効または無効を選択します。jit=true