2017-02-15 7 views
1

アプリケーションをデバッグモードで実行しているときに、Droolsが動作している4つのスレッドがあります。 2つのスレッドを2つの入力を並列に実行してアプリケーションを起動すると、同じ4つのスレッドが残ります(たとえば、8にはなりません)。 私の質問は、入力を別のアプリケーションで実行した場合(そして別のDroolsアプリケーションを起動した場合)、またはすべてをカバーしているため、同じアプリケーションで同じ結果が得られ、平行? 1 JVMの使用の複数の入力が同じアプリケーションで並列に実行されているのに対して、入力ごとに新しいアプリケーションが起動する

+1

「2つの入力を実行しています」と入力して時間を増やすことはできますか?問題は、(いつものように)あなたが(最初に)I/O境界か計算上の境界かどうかです。その後、あなたのコアの数に依存します。 1つのDroolsバージョンから次のバージョンに変更される可能性があります。そして、エンジンが処理する必要のある処理量、つまりあなたのルールでは、 - 基準。 – laune

答えて

1

利点:DRLコードで

  • JITコンパイルに一度だけ、Javaコードで一度だけ

    • ヒープ・プーリング
    • JITコンパイル、あなたのkiebasesキューイングを実施するための
    • 能力を再利用する場合に限っラウンドロビンの解決。 SolverManagerの問題と、Partitioned SearchのrunnablePartThreadLimitの目的を参照してください(ある時点でSolverManagerでもサポートされます)。複数のJVMのを使用しての

    利点:

    • ガベージコレクタは、特定のコアに(特にLinuxの場合)、プロセスIDをOSをリンクするために、より効率的に通常
    • 能力を動作します。これにより、OS構成によるラウンドロビン解決が可能になります。
  • 関連する問題