2017-02-15 14 views
1

Как я вижу, при запуске приложения в режиме отладки существует 4 разных потока, на которых работает Drools. Когда я запускаю приложение с двумя потоками, которые одновременно запускают два входа параллельно, остаются те же 4 потока (они не обращаются, например, к 8). Мой вопрос в том, есть ли возможность запускать входы в отдельном приложении (и при этом запускается отдельное приложение Drools), или все это покрывается, и мы получаем те же результаты с использованием одного приложения и запускаем входы в параллельно?Несколько входов, работающих параллельно в одном приложении, против запуска нового приложения для каждого входа

+1

Можете ли вы ввести больше за время путем «запуска двух входов»? Проблема заключается (как всегда) в том, являетесь ли вы (изначально) связанными с i/o или вычислительными. Тогда это зависит от количества ваших ядер. Это может измениться с одной версии Drools на другую. И с объемом обработки, который должен выполнить движок, т. Е. Вашими правилами. - Контрольный показатель. – laune

ответ

1

Преимущества использования 1 JVM-х:

  • куча пулы
  • JIT компиляции только один раз в Java коде только
  • JIT компиляции раз в DRL код тогда и только тогда вы повторно ваши kiebases
  • Возможность реализации очередей и круговое решение. См. Вопрос SolverManager и runnablePartThreadLimit в разделе «Разделенный поиск» (который также будет поддерживаться в SolverManager в какой-то момент).

Преимущества использования нескольких JVM-х:

  • Garbage Collector работает более эффективно, как правило
  • Возможность связать ОС (особенно на Linux) идентификатор процесса на конкретные сердечников. Это позволяет делать круговое решение через конфигурацию ОС.